mythwe.com

解决mcrypt_encrypt未定义的问题

PHP升级至7.2.5,之前使用了mcrypt_encrypt和mcrypt_decrypt函数,现在出现了如下错误:


Call to undefined function mcrypt_decrypt()


经过多方参考,终于解决了这个数据兼容的问题


问题背景:原来的加密密钥32位,IV是16位


mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $str, MCRYPT_MODE_CBC, $iv);


mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $str, MCRYPT_MODE_CBC, $iv);



变更后为:


openssl_encrypt($str, 'aes-256-cbc', $key, OPENSSL_RAW_DATA|OPENSSL_ZERO_PADDING, $iv);


openssl_decrypt($str, 'aes-256-cbc', $key, OPENSSL_RAW_DATA|OPENSSL_ZERO_PADDING, $iv);


参考资料:

[1] https://www.v2ex.com/t/370493 

[2] 用openssl_encrypt替换mcrypt_encrypt的过程

[3] AES五种加密模式(CBC、ECB、CTR、OCF、CFB)

作者 : myth  |  分类 : 默认  |  浏览 : 769  |  评论 : 0 2022 02 12  
« 上一篇 下一篇 »
©2022 MYTHWE.COM  /  粤ICP备17058066号  /