代码片段地址: https://developers.weixin.qq.com/s/vhKBMam47weB
重要!为了信息安全,还是建议将解密过程放至服务端!
解码过程:
1.获取必需变量:
encryptedData,iv: 通过phone 或者 userInfo的相关接口获得
sessionKey : 通过wx.login 获得的code 再通过服务端api获得
(一定得是获取encryptedData的前一个login获取到的没有过期的key才有效,是否过期可调用 wx.checkSession 判断)
2.引入解密库文件 aes.cbc.min.js ( /lib/aes.cbc.min.js )。
3.使用index.js( /index/index.js )中的decode方法解密,若返回为对象即解密成功。
文件说明:
aes.cbc.min.js : 里面封装了两个库,一个是 开源的base64库 ,一个是 aes库 不过把其他不是cbc的mode删掉了。
假若返回值为 false,错误排除思路:
① sessionKey是否过期 。
② atob(iv) atob(key)出来的长度是否为16 。
③ 是否开启了代码混淆导致文件引入失败。
我是大自然的搬运工,新年快乐!