@Scotik
Junior Android Developer

Шифровка и расшифровка php — android. Что не так?

Шифрую файл и скачиваю его, дальше расшифровываю его на Android устройстве, в чём может быть проблема?

$file = fopen('License.pdf', 'rb');
$size = filesize($file);

		header('Content-Description: File Transfer');
		header('Content-Type: application/octet-stream');
		header('Content-Disposition: attachment; filename=License');
		header('Content-Transfer-Encoding: binary');
		header('Expires: 0');
		header('Cache-Control: must-revalidate');
		header('Pragma: public');

while (!feof($file)) {
//	print ($data ^  4);
	$data = fread($file,4096);
	if (strlen($data) == 4096) {
		for ($i = 0; $i < 4096; $i++) {
			$data[$i] = ($data[$i] ^ $data[0]);
		}
	}
	print $data;
}


BufferedInputStream reader = new BufferedInputStream(new FileInputStream(file));
                outFile = new File(filesDir, file.getName());
                FileOutputStream out = new FileOutputStream(filePath + "_dec_02");

                String base = null;
                String save = null;
                byte[] buffer = new byte[4096];
                int size;
                char helpKey = 0;
                char[] keys = key.toCharArray();
                while ((size = reader.read(buffer)) != -1) {
                    if (size == 4096) {
//
                        for (int i = 0; i < 4096; i++) {
                            buffer[i] = (byte) (buffer[i] ^ buffer[0]);
                        }
                    }
//
                    out.write(buffer);
                    out.flush();
                }
  • Вопрос задан
  • 150 просмотров
Решения вопроса 1
zagayevskiy
@zagayevskiy Куратор тега Android
Android developer at Yandex
Чего вы таким "алгоритмом" хотели добиться?
for ($i = 0; $i < 4096; $i++) {
      $data[$i] = ($data[$i] ^ $data[0]);
    }

На нулевом шаге $data[0] = $data[0] ^ $data[0] = 0;
Дальше все остальные элементы массива вы ксорите с нулём. И они не изменяются.
В расшифровке всё наоборот - нулевой элемент никак не восстановить.
Плюс я не знаю, как вы там в пхп итерируетесь. В джаве - по два байта.

Ну и каноничное: security throught obscurity - это плохо.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
28 апр. 2024, в 20:09
9000 руб./за проект
28 апр. 2024, в 19:54
2000 руб./за проект
28 апр. 2024, в 19:54
5000 руб./за проект