微信开发之数据解密的示例分析
发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,这篇文章主要为大家展示了"微信开发之数据解密的示例分析",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"微信开发之数据解密的示例分析"这篇文章吧。最近在用th
千家信息网最后更新 2025年11月09日微信开发之数据解密的示例分析
这篇文章主要为大家展示了"微信开发之数据解密的示例分析",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"微信开发之数据解密的示例分析"这篇文章吧。
最近在用thinkphp框架写微信小程序的服务端,可能真的是处女座的缘故,从官方下载了一个php的微信解密demo,明明能整合成一个类也没多少代码的,非要分几个类来写,考虑到thinkphp 5.0的框架对于扩展的类引用路劲看着太蛋疼,所以就整合成了一个类,方便调用,有需要的朋友可以download。
百度盘下载地址:
pan.baidu.com/s/1kURMQ2b
sessionKey = $sessionKey; $this->appid = $appid; if (strlen($this->sessionKey) != 24) { return $this->IllegalAesKey; } $aesKey=base64_decode($this->sessionKey); if (strlen($iv) != 24) { return $this->IllegalIv; } $aesIV=base64_decode($iv); $aesCipher=base64_decode($encryptedData); $result = $this->decrypt($aesKey,$aesCipher,$aesIV); if ($result[0] != 0) { return $result[0]; } $dataObj=json_decode( $result[1] ); if( $dataObj == NULL ) { return $this->IllegalBuffer; } if( $dataObj->watermark->appid != $this->appid ) { return $this->IllegalBuffer; } $data = $result[1]; return $this->OKs; } /** * 对密文进行解密 * @param string $aesCipher 需要解密的密文 * @param string $aesIV 解密的初始向量 * @return string 解密得到的明文 */ private function decrypt($key, $aesCipher, $aesIV ) { try { $module = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, ''); mcrypt_generic_init($module, $key, $aesIV); //解密 $decrypted = mdecrypt_generic($module, $aesCipher); mcrypt_generic_deinit($module); mcrypt_module_close($module); } catch (Exception $e) { return array($this->IllegalBuffer, null); } try { //去除补位字符 $result = $this->decode($decrypted); } catch (Exception $e) { //print $e; return array($this->IllegalBuffer, null); } return array(0, $result); } /** * 对需要加密的明文进行填充补位 * @param $text 需要进行填充补位操作的明文 * @return 补齐明文字符串 */ private function encode( $text ) { $block_size = $this->blockSize; $text_length = strlen( $text ); //计算需要填充的位数 $amount_to_pad = $this->blockSize - ( $text_length % $this->blockSize ); if ( $amount_to_pad == 0 ) { $amount_to_pad = $this->blockSize; } //获得补位所用的字符 $pad_chr = chr( $amount_to_pad ); $tmp = ""; for ( $index = 0; $index < $amount_to_pad; $index++ ) { $tmp .= $pad_chr; } return $text . $tmp; } /** * 对解密后的明文进行补位删除 * @param decrypted 解密后的明文 * @return 删除填充补位后的明文 */ private function decode($text) { $pad = ord(substr($text, -1)); if ($pad < 1 || $pad > 32) { $pad = 0; } return substr($text, 0, (strlen($text) - $pad)); }}以上是"微信开发之数据解密的示例分析"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
明文
数据
示例
分析
开发
内容
字符
篇文章
密文
框架
学习
帮助
整合
代码
位数
向量
地址
处女
字符串
官方
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
深圳理奥网络技术有限公司
软件开发零基础入门mac
软件开发如何做抖音推广
网络安全知识普及篇
工信局网络安全保密
北京app软件开发咨询客服
坐席监控软件开发
c语言数据库json
免安装 服务器
高青设备管理软件开发公司
网络安全宣报内容
网络安全现状分析及应对方法
软件开发中面临的风险
go语言服务器开发
邯郸项目软件开发正规平台
数据库股票池
英文版数据库下载
义乌app软件开发公司有哪些
计算机网络技术面试问题
2021.10.4 连接服务器失败原因
支付宝网络技术扣费啥意思
第三方软件开发公司管理制度
中国互联网络技术环境分析
邯郸办公系统软件开发哪家正规
软件开发中使用域名代替ip
高青设备管理软件开发公司
地理信息科学想搞软件开发
购买oracle数据库
数据库超键 候选键 主键6
恐怖主义是当前世界网络安全