【问题标题】:mcrypt_create_iv returns undefined variablemcrypt_create_iv 返回未定义的变量
【发布时间】:2016-05-03 15:59:08
【问题描述】:

我的加密/iv 代码不起作用。每当我测试登录时,我都会收到此错误

警告: openssl_encrypt(): Using an empty Initialization Vector (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 安装良好。 你能帮忙还是我可能需要提供更多代码?

【问题讨论】:

  • 请使用 PHP 的built-in functions 来处理密码安全问题。如果您使用的 PHP 版本低于 5.5,您可以使用 password_hash() compatibility pack
  • 好的,谢谢,希望对您有所帮助

标签: php mcrypt php-openssl


【解决方案1】:

您正在获取“CAST”的 iv 大小:MCRYPT_CAST_256 但您正在使用“aes-128-cbc”进行加密。那是算法不匹配。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-21
    • 2012-01-16
    • 2020-11-29
    • 1970-01-01
    • 1970-01-01
    • 2019-05-03
    • 2016-05-13
    • 2020-06-07
    相关资源
    最近更新 更多