php – mcrypt_encrypt无法初始化
发布时间:2020-12-13 17:21:02 所属栏目:PHP教程 来源:网络整理
导读:我试图使用Cbit模式中的Rijndael密码使用256位密钥加密 PHP中的一些数据但由于某种原因我收到以下错误消息: mcrypt_encrypt()模块初始化失败 我的代码: $hashKey = hash('sha256',$key); $iv = hash('sha256',$hashKey); // ------Cipher-------------key-
我试图使用Cbit模式中的Rijndael密码使用256位密钥加密
PHP中的一些数据但由于某种原因我收到以下错误消息:
mcrypt_encrypt()模块初始化失败 我的代码: $hashKey = hash('sha256',$key); $iv = hash('sha256',$hashKey); // ------Cipher-------------key-------------Data-------------Mode---------IV-- $encryptedQuestion = base64_encode(mcrypt_encrypt('MCRYPT_RIJNDAEL_256',$hashKey,$_POST['question'],MCRYPT_MODE_CBC,$iv)); 任何人都可以看到这个错误吗? 解决方法
我可以发现代码存在一些问题:
>你的$iv不应该依赖于$hashKey;相反,您应该使用mcrypt_create_iv()单独创建它. 以下代码比您的代码更详细,但它应该让您深入了解加密某些内容所需的步骤: $crypto = mcrypt_module_open(MCRYPT_RIJNDAEL_256,'',''); $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($crypto),MCRYPT_DEV_URANDOM); $hkey = hash('sha256',$key,true); mcrypt_generic_init($handle,$hkey,$iv); $enc_question = mcrypt_generic($handle,$_POST['question']); mcrypt_generic_deinit($handle); mcrypt_module_close($handle); 我也遗漏了任何错误检查. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |