mcrypt create iv возвращает неопределенную переменную


Мой код шифрования/iv не работает. Всякий раз, когда я проверяю логин, я получаю эту ошибку

Предупреждение: openssl_encrypt(): Использование пустого вектора инициализации (iv) потенциально небезопасно и не рекомендуется в /Users/luke/Sites/user.php в режиме онлайн 174

Я отследил его до этой строки

$size = mcrypt_get_iv_size(MCRYPT_CAST_256, MCRYPT_MODE_CFB);
$iv = mcrypt_create_iv($size, MCRYPT_DEV_URANDOM);
$method = "aes-128-cbc";
$passWord = mcrypt_create_iv($size, MCRYPT_DEV_URANDOM);
$verificationNumber = openssl_encrypt($passWord, $method, $iv);

Mcrypt установлен нормально, как показано на рисунке. phpinfo mcrypt settings Можете ли вы помочь или мне, возможно, нужно предоставить еще код?

Author: Jay Blanchard, 2016-01-27

1 answers

Вы получаете размер iv для "ПРИВЕДЕНИЯ": MCRYPT_CAST_256, но вы шифруете с помощью "aes-128-cbc". Это неправильный алгоритм.

Размер ПРИВЕДЕННОГО блока составляет 64 бита, размер блока AES - 128 бит. Вместо этого используйте MCRYPT_RIJNDAEL_128, AES - это подмножество Rijndael с блоком из 128 бит.

 1
Author: zaph, 2016-01-27 00:00:32