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

微信小程序在解密手机号时遇到javax.crypto.BadPaddingException: padblockcorrupted错误。问题源于获取session_key和手机号加密数据的顺序不正确。正确流程应先调用wx.login获取code,再获取session_key,然后获取加密数据,最后使用新的session_key进行解密。错误的流程可能导致使用了旧的session_key尝试解密数据,从而引发错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

微信小程序获取用户手机号,后端解密手机号的时候偶尔会报错 javax.crypto.BadPaddingException: pad block corrupted

之前的获取流程是这样的:

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

以下为正确的流程

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值