解密用户信息报错pad block corrupted
解密用户信息报错,如下:
前端:
wx.login({ success: function (loginResp) { if (loginResp.code) { //获取用户信息 wx.getUserInfo({ withCredentials: true, success: function (res) { //封装登陆需要的参数 var params = {}; params.code = loginResp.code; params.encryptedData = res.encryptedData; params.iv = res.iv; //调用登陆接口 that.sendRequest({ url: '/login', data: params, success: function (res) { //cache userInfo... } }) }, fail: function (e) { console.log(e); } }); } else { console.log('获取用户登录态失败!' + res.errMsg) } } }); |
后台步骤:
- 跟据code换取用户session_key
请求方式:http get
返回结果:
{“session_key”:“xxxxxxxx”,“openid”:“xxxxxxxxxx”}
- 使用解密工具类解密出明文,使用:AES/CBC/PKCS7Padding AES方式解密
参数:encryptedData、sessionKey、iv
结果:
javax.crypto.BadPaddingException: pad block corrupted
但是紧接着第二次再走以上流程是可以正常解出明文用户信息的
过会再走以上流程第一次请求又是报这个错误
