微信小程序解密encryptedData 报错:pad block corrupted 解决方法

原创
2020/12/03 23:13
阅读数 7.7K

今天在开发小程序获取微信绑定的手机号时遇到异常:javax.crypto.BadPaddingException: pad block corrupted

折腾半天,突然想到是因为:

  1. 先通过getPhoneNumber获取了手机号的加密数据。
  2. 然后才调用的wx.login获取code。
  3. 再通过code取到用户的session_key 。
  4. 最后再用session_key,手机号的加密数据和向量解密获取手机号。

正确的做法应该是:

  1. 先才调用的wx.login获取code
  2. 然后再通过code取到用户的session_key 。
  3. 再通过getPhoneNumber获取了手机号的加密数据。
  4. 最后再用session_key,手机号的加密数据和向量解密获取手机号。

改完之后果然没有问题。


这是因为调用了wx.login后通过code获得的session_key是新的session_key.

所以,在调用wx.login之前获的加密数据不是用新得session_key加密的数据。

在调用wx.login之后获得的加密数据,才是新得的session_key加密的数据。

展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部