诚然博客

  • 首页
  • HTML
  • Jquery
  • PHP
  • ThinkPHP
  • Linux
  • 琐事
  1. 首页
  2. ThinkPHP
  3. 正文

微信 小程序 登录一直 -41003,在php7上解决办法

2018年4月11日 2463点热度

原因是官方的php7.1版本是不支持mcrypt扩展(将来也不会支持,在7.1以上的版本直接废掉).所以就会抛出错误了.

所以,只能用openssl解密代码,逻辑不变,只是解密用的php方法变了

https://mp.weixin.qq.com/debug/wxadoc/dev/api/signature.html
1.对称解密使用的算法为 AES-128-CBC,数据采用PKCS#7填充。
2.对称解密的目标密文为 Base64_Decode(encryptedData),
3.对称解密秘钥 aeskey = Base64_Decode(session_key), aeskey 是16字节
4.对称解密算法初始向量 iv 会在数据接口中返回。


最后的结果代码就是用openssl替换mcrypt的解密逻辑
代码如下

// $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, true, $aesIV);
标签: 暂无
最后更新:2020年2月13日

诚然

这个人很懒,什么都没留下

点赞
< 上一篇

COPYRIGHT © 2012-现在 诚然博客. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

鄂ICP备2022012104号