【AES.CBC解码】不使用CryptoJS 进行敏感数据解密
发布于 5 年前 作者 tianguiying 1073 次浏览 来自 分享

代码片段地址: 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 : 里面封装了两个库,一个是 <a href="https://github.com/davidchambers/Base64.js/blob/master/base64.js" rel="noopener noreferrer" target="_blank">开源的base64库</a> ,一个是 <a href="https://github.com/ricmoo/aes-js/blob/master/index.js" rel="noopener noreferrer" target="_blank">aes库</a> 不过把其他不是cbc的mode删掉了。

假若返回值为 false,错误排除思路:

① sessionKey是否过期 。

② <span style="color: rgb(105, 105, 105);">atob(iv) atob(key)出来的长度是否为16 。</span>

③ 是否开启了代码混淆导致文件引入失败。

我是大自然的搬运工,新年快乐!

回到顶部