最近接触微信openId的接口,需要获取openId的相关信息
javax.crypto.IllegalBlockSizeException: Input length must be multiple of 8 when decrypting with padded cipher,
咋的一看,英文不是说,传进来的String字节长度不是8的倍数,难道我要数一数微信openId的长度吗?

Controller代码

修改后:(比对)

相关参数封装以及Service也修改了,没有贴图上来。
将相关参数封装为一个对象进行传参;GET方法改为Post,后续测试正常解码。
其中在Get方法时debug过程中,我发现传进来的openId存在的“+”、“/”等是为空的,但是我没有截图,一开始没往这方面想,果然是这个问题导致的。
解决思路参考博客,https://blog.youkuaiyun.com/smile_68/article/details/99676985,
博主写得比我好多了。
本文记录了解决使用微信OpenID接口时遇到的javax.crypto.IllegalBlockSizeException异常的过程。通过调整GET请求为POST请求,并对传入参数进行正确封装,最终解决了因字符串长度不符合加密要求而导致的问题。
346

被折叠的 条评论
为什么被折叠?



