pad block corrupted,IV not 16 bytes long,last block incomplete in decryption

​微信小程序获取用户绑定的手机号信息解密出现pad block corrupted,前端打开授权页面时先调用login(),将jscode存在本地,当点击授权时,先检查jscode是否过期,如果过期了,就调用login获取最新的;未过期则将本地存储的jscode拿出来,传递给后端,请求后在complete中调用login()刷新本地jscode。

传参时,需要调用encodeURIComponent方法对encryptedData和iv进行编码。如果不对参数进行编码,参数中的特殊字符到后端时会变成空格,而且多个特殊字符连在一起时,只会转成一个空格,会出现IV not 16 bytes long 或者 last block incomplete in decryption 的错误。后端参数接收有些接口会自动将参数解码,有些不会,没搞懂为啥,用encryptedData.contains("%")来判断是否要解码。解码用的工具类是hutool的URLDecoder,java.net下的URLDecoder好像解不出来。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值