微信退款抛javax.crypto.BadPaddingException: Given final block not properly padded
@JFinal 你好,想跟你请教个问题:
使用退款refund API时, 报这个错误,证书是从微信上下载的。
Caused by: java.io.IOException: failed to decrypt safe contents entry: javax.crypto.BadPaddingException: Given final block not properly padded
at sun.security.pkcs12.PKCS12KeyStore.engineLoad(PKCS12KeyStore.java:1317)
at java.security.KeyStore.load(KeyStore.java:1226)
at com.jfinal.weixin.sdk.utils.HttpUtils$OkHttp3Delegate.postSSL(HttpUtils.java:345)
... 19 more
Caused by: javax.crypto.BadPaddingException: Given final block not properly padded
at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:811)
at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:676)
at com.sun.crypto.provider.PKCS12PBECipherCore.implDoFinal(PKCS12PBECipherCore.java:355)
at com.sun.crypto.provider.PKCS12PBECipherCore$PBEWithSHA1AndRC2_40.engineDoFinal(PKCS12PBECipherCore.java:462)
at javax.crypto.Cipher.doFinal(Cipher.java:1966)
at sun.security.pkcs12.PKCS12KeyStore.engineLoad(PKCS12KeyStore.java:1308)
... 21 more
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
密码错了
我在同一个jvm程序里加载两个微信商户号的证书信息时有这个问题,但是只加载一个没有,是客观的只能加载一个商户号的证书吗
@Dreamlu
@如梦技术
在 windows 机器上测试一下,看看结果如何,此文谈到了是 linux 下工作不正常。SecureRandom 出错的可能很小
回复
压根不是那问题,是它内部加密的时候使用Des了。 这些小博客不追根求原就瞎说!
@JFinal ,
我看HttpUtils用的是 new SecureRandom();
不知是否有关系,请指教。
这篇东东上提到,
http://free4wp.com/%e8%a7%a3%e5%86%b3linux%e6%93%8d%e4%bd%9c%e7%b3%bb%e7%bb%9f%e4%b8%8baes%e8%a7%a3%e5%af%86%e5%a4%b1%e8%b4%a5%e7%9a%84%e9%97%ae%e9%a2%98.html
原因分析:
SecureRandom 实现完全随操作系统本身的內部状态,除非调用方在调用 getInstance 方法之后又调用了 setSeed 方法;该实现在 windows 上每次生成的 key 都相同,但是在 solaris 或部分 linux 系统上则不同。
你确认下,看看是否还有问题
引用来自“Jacky_D_H”的评论
@Dreamlu
@如梦技术