2016-07-21 9 views
-1

Я получаю предупреждение в PHP версии 5.6.15. Что означает Ключ размера 26, не поддерживаемый этим алгоритмом.mcrypt_encrypt(): Ключ размера 26 не поддерживается этим алгоритмом. Только ключи размеров 16, 24 или 32 поддерживаются в

+0

Если это проблема при обновлении вашей версии MySQL, [changelog] (http://php.net/manual/en/function.mcrypt-encrypt.php#refsect1-function.mcrypt-encrypt-changelog) говорит следующее: Недопустимые ключи и iv размеры больше не принимаются. 'mcrypt_encrypt()' теперь выдает предупреждение и возвращает 'FALSE', если входные данные недействительны. Раньше клавиши и IV были дополнены байтами '\ 0'' до следующего допустимого размера. – Phylogenesis

ответ

2

26 никогда не был действительным размером ключа, но версии PHP < 5.6 используются для прозрачного рассмотрения этого вопроса для вас. От the documentation

Неверные ключи и iv размеры больше не принимаются. mcrypt_encrypt() теперь выдает предупреждение и возвращает FALSE, если входы недействительны. Раньше клавиши и IV были дополнены байтами '\ 0' до следующего допустимого размера.

Таким образом, вы можете реплицировать старое поведение, заполнив свой ключ нулевыми байтами, используя strpad.