在PHP7 中 mcrypt_module_open()已经被 OPENSSL 取代.

当然你要是还是想用 mcrypt_module_open()就安装 mcrypt 扩展.

使用 openssl 代替 mcrypt:

WXBizDataCrypt.php

public function decryptData( $encryptedData, $iv, &$data ){if (strlen($this->sessionKey) != 24) {return ErrorCode::$IllegalAesKey;}$aesKey=base64_decode($this->sessionKey);if (strlen($iv) != 24) {return ErrorCode::$IllegalIv;}$aesIV=base64_decode($iv);// $aesCipher=base64_decode($encryptedData);$aesCipher=$encryptedData;$pc = new Prpcrypt($aesKey);$result = $pc->decrypt($aesCipher,$aesIV);//var_dump($result);if ($result[0] != 0) {return $result[0];}$dataObj=json_decode( $result[1] );if( $dataObj  == NULL ){return ErrorCode::$IllegalBuffer.'--';}if( $dataObj->watermark->appid != $this->appid ){return ErrorCode::$IllegalBuffer.';;';}$data = $result[1];return ErrorCode::$OK;
}

PKCS7Encoder.php

/*** 对密文进行解密* [@param](https://my.oschina.net/u/2303379) string $aesCipher 需要解密的密文* [@param](https://my.oschina.net/u/2303379) string $aesIV 解密的初始向量* [@return](https://my.oschina.net/u/556800) string 解密得到的明文*/
public function decrypt( $aesCipher, $aesIV )
{try {// $module = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, '');// mcrypt_generic_init($module, $this->key, $aesIV);// //解密// $decrypted = mdecrypt_generic($module, $aesCipher);// mcrypt_generic_deinit($module);// mcrypt_module_close($module);$decrypted = openssl_decrypt($aesCipher,'AES-128-CBC',$this->key,OPENSSL_ZERO_PADDING,$aesIV);// var_dump($decrypted);} catch (Exception $e) {return array(ErrorCode::$IllegalBuffer, null);}try {//去除补位字符$pkc_encoder = new PKCS7Encoder;$result = $pkc_encoder->decode($decrypted);} catch (Exception $e) {//print $e;return array(ErrorCode::$IllegalBuffer, null);}return array(0, $result);
}

解决PHP7中微信(小程序)mcrypt_module_open() 无法使用的解决方法相关推荐

  1. [微信小程序开发] 用wx.navigateTo方法跳转到tabBar中被定义了的页面将无法跳转

    [微信小程序开发] 用wx.navigateTo方法跳转到tabBar中被定义了的页面将无法跳转 举例: main.js中: tabBar中 定义了页面"pages/test/main&qu ...

  2. 微信小程序怎么弄成链接_微信小程序怎么复制链接 技术方法帮你解决

    总是听到很多朋友在问微信小程序怎么复制链接,其实方法还是比较多的.微信小程序现在用的人非常多,而且带起了一阵潮流之风,如果你还没有用过,那你就是太OUT了.下面我们就来为大家介绍一下技术的方法怎么解决 ...

  3. 微信小程序使用wxParse,解决图片显示路径问题

    微信小程序使用wxParse,解决图片显示路径问题 参考文章: (1)微信小程序使用wxParse,解决图片显示路径问题 (2)https://www.cnblogs.com/zxf100/p/100 ...

  4. html自定义js程序,JS中微信小程序自定义底部弹出框

    实现微信小程序底部弹出框效果,代码分为html,css和js两部分,具体代码详情大家参考下本文. html CSS .commodity_screen { width: 100%; height: 1 ...

  5. 基于有道翻译的英翻中微信小程序

    基于有道翻译的英翻中微信小程序 环境 微信开发者工具 微信小程序云开发 node.js v12.16.3 axios@0.20.0 cheerio@1.0.0-rc.3 相关内容 Node.js有道翻 ...

  6. java监听微信_一种基于java后台应用监控微信小程序的用户访问量的方法与流程...

    本发明涉及java应用与微信小程序应用开发技术领域,具体涉及一种基于java后台应用监控微信小程序的用户访问量的方法. 背景技术: 微信小程序,简称小程序,是一种不需要下载安装即可使用的应用,它实现了 ...

  7. 家用电脑设置成小程序服务器,电脑微信小程序设置全屏的方法是什么

    电脑微信小程序设置全屏的方法是什么 方法:首先配置小程序resizeable的参数设置为true,这样操作可以在电脑端打开一个较大的横向窗口显示,屏幕大小是1024乘以768的,然后再按下全屏按钮,便 ...

  8. html制作炸金花,微信小程序怎么制作炸金花?微信小程序制作炸金花的方法

    很多朋友喜欢玩炸金花游戏,那么怎么在微信小程序上制作炸金花呢?下面就是小编带来的完整详细的教程,想要学习的小伙伴就赶紧看过来吧. 微信小程序怎么制作炸金花?微信小程序制作炸金花的方法 app.json ...

  9. 微信小程序转二维码方法分享

    微信小程序转二维码方法分享 需要转码的可以看看 这个东西是看个人需求的,618就要来了,各种活动也将来袭 有些小伙伴不知道怎么生成 为了方便小程序邀请活动没法外发,这里分享下将小程序转二维码的方法 首 ...

最新文章

  1. 什么?你还在使用fastjson,性能太差了
  2. img引Linux的绝对路径,什么是绝对路径和相对路径
  3. Java stackoverflowerror异常与outofmemoryerror异常区别
  4. 项望烽:移动IM开发那些事儿
  5. matlab 自动扫雷,MATLAB自动扫雷(2)——排雷插旗
  6. C# Lambda 和 匿名函数的GC总结
  7. linux运维和3dmax哪个简单,牛逼运维常用的工具系列-2
  8. 人生苦短,Python值得 这些Pandas隐藏小技巧你知道吗?
  9. VS C++/ClI调用C++ 外部Dll无法查看变量值
  10. 补习系列(3)-springboot中的几种scope
  11. 接口测试——接口测试流程
  12. python三元一次方程代码_求三元一次方程计算器代码
  13. 【深入浅出imx8企业级开发实战 | 01】imx8qxp yocto工程构建指南
  14. 创建oracle数据库实例
  15. 基于vue的UI框架ydui中的楼层跳跃scrolltab问题解决
  16. RCTF-2015-x_xor_md5
  17. 永远的道长——林正英
  18. Go Context 原理详解
  19. 分享几个搜索电子书网站
  20. 地铁三号线 - 95后的财务自由

热门文章

  1. vue使用video和vue-video-player并且可实现视频铺满呦
  2. 学生个人网页设计作品 HTML+CSS 简单个人主页成品 HTML学生个人网站作业设计
  3. c8051f310烧录_C8051F烧录器-C8051F系列烧录工具下载v1.0.0.1 官方最新版-西西软件下载...
  4. 视频转码编辑工具:Compressor for Mac(4.5.4)
  5. vue 中父子组件传递通信(看图就会了,皮卡皮卡)
  6. \t\t门萨智商测试 有些面试的公司喜欢玩这个
  7. 还在问视频音频转文字软件哪个好吗?快码住这两款
  8. 荣耀magic3参数配置
  9. 为什么要将数据序列化?
  10. 神经网络为什么要归一化?