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


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

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

    明文加密:

        原代码            

    $random = $this->getRandomStr();
    $text = $random . pack("N", strlen($text)) . $text . $appid;
    $size = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
    $module = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, '');
    $iv = substr($this->key, 0, 16);
    $pkc_encoder = new PKCS7Encoder;
    $text = $pkc_encoder->encode($text);
    mcrypt_generic_init($module, $this->key, $iv);
    $encrypted = mcrypt_generic($module, $text);
    mcrypt_generic_deinit($module);
    mcrypt_module_close($module)

         修改为

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

    明文解密

        原代码

    $ciphertext_dec = base64_decode($encrypted);
    $module = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, '');
    $iv = substr($this->key, 0, 16);
    mcrypt_generic_init($module, $this->key, $iv);
    $decrypted = mdecrypt_generic($module, $ciphertext_dec);
    mcrypt_generic_deinit($module);
    mcrypt_module_close($module);

        修改为

    $ciphertext_dec = base64_decode($encrypted);
    $iv = substr($this->key, 0, 16);
    $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

  • 相关阅读:
    day09_request&response学习笔记
    为什么浏览器User-agent(浏览器类型)总是有Mozilla字样?
    无效类字符串:ProgID: Excel.Application
    django2.0升级日记
    Kali Linux信息收集工具
    Kali Linux 工具使用中文说明书
    人手一份核武器
    五大常用算法【转发】
    ACCA AI来袭会议笔记
    2017 Gartner数据科学魔力象限出炉,16位上榜公司花落谁家?
  • 原文地址:https://www.cnblogs.com/lxwphp/p/10671897.html
Copyright © 2020-2023  润新知