Я использовал алгоритм Rijndael для шифрования и дешифрования пароля моей базы данных. Я сохранил закодированный пароль в другом файле. Здесь я уменьшил код релевантной:mcrypt_decrypt добавление нуля в конце дешифрованного текста
$encrypted = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, PASSWORD_SALT, 'mypassword', MCRYPT_MODE_ECB);
$decrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, PASSWORD_SALT, $encrypted, MCRYPT_MODE_ECB);
// !! The value of $decrypted is "mypassword " i.e. "mypasswordNULLNULLNULLNULLNULL"
'mypassword'
преобразуется в 'mypassword' + 6xNULL
. Дешифрованный код содержит нуль.
Я написал этот код 1 год назад, и все работает нормально. Но теперь, когда изменилась версия всех технологий, у меня возникла проблема.
Обратите внимание, что если ваш открытый текст был необработанным двоичным кодом, и существует вероятность того, что ваше исходное сообщение закончилось бы в серии '\ 0' байт, вы потеряете данные. Лучшая идея: переключиться на OpenSSL, который даст вам дополнение PKCS7, если вам не нужно думать/ухаживать. –