thinkphp微信开发:安全模式消息加解密
程序员文章站
2022-05-10 15:55:25
...
使用thinkphp官方的WeChat包,使用不同模式可以成功,但是安全模式就是不行,现将分析解决结果做下记录。
TRight
分析问题:
解密微信服务器消息老是不成功,下载下微信公众平台官方给出的解密文件和WechatCrypt.class.php进行比对发现也没有问题。用file_put_contents函数保存下解密后的文件进行分析。发现官方包解密的xml不是标准的xml格式,所以simplexml_load_string函数无法处理。
/** * 对密文进行解密 * @param string $encrypt 密文 * @return string 明文 */publicfunction decrypt($encrypt){ //BASE64解码$encrypt = base64_decode($encrypt); //打开加密算法模块$td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, ''); //初始化加密算法模块 mcrypt_generic_init($td, $this->cyptKey, substr($this->cyptKey, 0, 16)); //执行解密$decrypt = mdecrypt_generic($td, $encrypt); //去除PKCS7补位$decrypt = self::PKCS7Decode($decrypt, mcrypt_enc_get_key_size($td)); //关闭加密算法模块 mcrypt_generic_deinit($td); mcrypt_module_close($td); if(strlen($decrypt) ){