PHP7.1 mcrypt_encrypt废弃后,如何用openssl_encrypt安全替代?

php7.1 mcrypt_encrypt废弃后,如何用openssl_encrypt安全替代?

php7.1废弃加密方法替代方案: mcrypt_encrypt vs openssl_encrypt

在php7及以上版本中,mcrypt扩展已废弃不再支持。因此,在php7以上版本中,使用mcrypt_encrypt函数存在问题,需要寻找替代方案。

使用openssl_encrypt函数作为mcrypt_encrypt的替代方案,可以提供类似的功能。但是,使用openssl_encrypt实现加密时,输出结果与mcrypt_encrypt不一致。

原因分析:

立即学习“PHP免费学习笔记(深入)”;

密钥长度差异: mcrypt_encrypt可以自动选择加密算法的密钥长度,而openssl_encrypt始终遵循指定的算法。初始化向量(iv)处理: mcrypt_encrypt在ecb模式下添加了iv处理,而openssl_encrypt在ecb模式下不支持iv。

解决方案:

为了解决这些问题,需要对openssl_encrypt函数的调用进行修改:

指定正确的加密算法:将’aes-128-ecb’修改为’aes-192-ecb’,以匹配mcrypt_encrypt使用的算法。去除iv处理:删除openssl_encrypt函数调用中的iv。

修改后的代码示例如下:

$key = '5AE8274196C85364D44938E47D80ACA6';$text = '1222.01';$cipher = 'aes-192-ecb';$context = openssl_encrypt($text, $cipher, $key, OPENSSL_RAW_DATA);$base64Context = base64_encode($context);if ($base64Context === 'cPnrXHxzWG6e0GyC7X/kpg==') {    echo "Output is consistent with mcrypt_encrypt.";}

以上就是PHP7.1 mcrypt_encrypt废弃后,如何用openssl_encrypt安全替代?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1251590.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月9日 23:16:28
下一篇 2025年12月8日 15:00:51

相关推荐

发表回复

登录后才能评论
关注微信