2016-01-26 10 views
2

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

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

я отслеживали его вниз, чтобы это линии

$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 Можете ли вы мне помочь или мне, возможно, нужно предоставить больше кода?

+1

Для обеспечения безопасности паролей воспользуйтесь встроенными функциями PHP (http://jayblanchard.net/proper_password_hashing_with_PHP.html). Если вы используете версию PHP менее 5.5, вы можете использовать 'password_hash()' [пакет совместимости] (https://github.com/ircmaxell/password_compat). –

+0

Хорошо, спасибо, надеюсь, что это поможет –

ответ

1

Вы получаете размер iv для «CAST»: MCRYPT_CAST_256, но вы шифруете «aes-128-cbc». Это алгоритм неправильного совпадения.

Размер блока CAST - 64 бит, размер блока AES - 128 бит. Вместо этого используйте MCRYPT_RIJNDAEL_128, AES - это подмножество Rijndael с блоком 128 бит.

Смежные вопросы