Мы получаем следующее предупреждение после обновления с PHP 5.5.18 до PHP 5.6.2:
mcrypt_decrypt(): Key of size 20 not supported by this algorithm. Only keys of sizes 16, 24 or 32 supported
Алгоритм шифрования до этого работал нормально:
$decrypttext = mcrypt_decrypt(
MCRYPT_RIJNDAEL_256,
$this->keys[$key_label],
$crypttext,
MCRYPT_MODE_ECB,
$iv
);
Было бы большой проблемой повторно зашифровать все, есть ли что-то, чем я могу дополнить ключ, чтобы он работал так же, как и раньше?
Предположительно, здесь нет никаких уязвимостей безопасности.
str_pad($this->keys[$key_label], "\0", 32)
должен это сделать, ноMCRYPT_RIJNDAEL_256
? Режим ЕЦБ? Фу :( - person Scott Arciszewski   schedule 09.03.2015MCRYPT_RIJNDAEL_256
очень похож на стандартныйMCRYPT_RIJNDAEL_128
или был в 2010 году см. этот вопрос. Да, ECB был недосмотром, но на самом деле мы шифруем только номера (короче, чем длина блока) и адреса электронной почты для urluse. Почему небольшое расширение git-hub считается рецензируемым, а не расширение mcrypt? - person Arth   schedule 10.03.2015