php 7.1 openssl_decrypt() 代替 mcrypt_module_open() 方法

举报
lxw1844912514 发表于 2022/03/27 03:12:05 2022/03/27
【摘要】 公司开发微信第三方平台,之前用着一直是没有问题的。后来服务器到期进行项目搬迁就怎么也接收不到微信每10分钟的ticketle。 经过调试发现php版本由原来的7.0升到了7.1(该死....为什么没人告诉我)。mcrypt_module_open()函数在7.1中被贬低,将在7.2中被移除,要用openssl_decrypt(...

公司开发微信第三方平台,之前用着一直是没有问题的。后来服务器到期进行项目搬迁就怎么也接收不到微信每10分钟的ticketle。

经过调试发现php版本由原来的7.0升到了7.1(该死....为什么没人告诉我)。mcrypt_module_open()函数在7.1中被贬低,将在7.2中被移除,要用openssl_decrypt()函数代替。废话不多说了。直接给代码

明文加密

    原代码            


    
  1. $random = $this->getRandomStr();
  2. $text = $random . pack("N", strlen($text)) . $text . $appid;
  3. $size = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
  4. $module = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, '');
  5. $iv = substr($this->key, 0, 16);
  6. $pkc_encoder = new PKCS7Encoder;
  7. $text = $pkc_encoder->encode($text);
  8. mcrypt_generic_init($module, $this->key, $iv);
  9. $encrypted = mcrypt_generic($module, $text);
  10. mcrypt_generic_deinit($module);
  11. mcrypt_module_close($module)

     修改为


    
  1. $random = $this->getRandomStr();
  2. $text = $random . pack("N", strlen($text)) . $text . $appid;
  3. $iv = substr($this->key, 0, 16);
  4. $pkc_encoder = new PKCS7Encoder;
  5. $text = $pkc_encoder->encode($text);
  6. $encrypted = openssl_encrypt($text, 'AES-256-CBC', $this->key, OPENSSL_RAW_DATA|OPENSSL_ZERO_PADDING, $iv);

明文解密

    原代码


    
  1. $ciphertext_dec = base64_decode($encrypted);
  2. $module = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, '');
  3. $iv = substr($this->key, 0, 16);
  4. mcrypt_generic_init($module, $this->key, $iv);
  5. $decrypted = mdecrypt_generic($module, $ciphertext_dec);
  6. mcrypt_generic_deinit($module);
  7. mcrypt_module_close($module);

    修改为


    
  1. $ciphertext_dec = base64_decode($encrypted);
  2. $iv = substr($this->key, 0, 16);
  3. $decrypted = openssl_decrypt($ciphertext_dec, 'AES-256-CBC', $this->key, OPENSSL_RAW_DATA|OPENSSL_ZERO_PADDING, $iv);

特此记录一下!完毕。


原文:https://blog.csdn.net/haibo_j/article/details/80759706

文章来源: blog.csdn.net,作者:lxw1844912514,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/lxw1844912514/article/details/100028383

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。