mcrypt_create_iv返回未定义的变量

时间:2016-01-26 21:59:41

标签: php mcrypt php-openssl

我的加密/ 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 你可以帮忙或者我可能需要提供更多代码吗?

1 个答案:

答案 0 :(得分:1)

您正在获取“CAST”的静态大小:MCRYPT_CAST_256,但您使用“aes-128-cbc”进行加密。这是一种算法不匹配。

CAST块大小为64位,AES块大小为128位。而是使用MCRYPT_RIJNDAEL_128,AES是Rijndael的子集,具有128位的块。