С PHP, как удалить символы NUL при использовании фильтра зашифрованных файлов Zendframework (использует MYCRPT) с rijndael-256 - PullRequest
2 голосов
/ 02 апреля 2012

При попытке расшифровать файл в конец всех файлов (PDF, XLS и т. Д.) Добавляется несколько двоичных символов NUL, поэтому они не открываются правильно. Как вы удалите NUL во время расшифровки? RTRIM, похоже, не поможет в дешифрованном двоичном файле данных (word doc, xls и т. Д.).

Использование шифрования / дешифрования rijndael-256.

readfile(rtrim($encrypt->filter($_FILES['userfile']['tmp_name'])));

Попытка сделать все в одной строке для повышения эффективности.

1 Ответ

4 голосов
/ 03 апреля 2012

Используйте что-то вроде rtrim($decrypted, "\0");, чтобы удалить завершающие символы NUL из вашего расшифрованного сообщения.Поскольку вы используете блочный шифр (AES), он должен дополнить зашифрованную строку до длины блока.

Если конец вашего файла может содержать допустимые NUL символы, тогда этот метод может быть проблематичным, и вам нужно будет сохранить исходную длину сообщения, чтобы вы могли удалить дополнительный блок в конце.

См. Заполнение - Криптография , в частности, раздел Методы заполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...