微信支付 V3 支付通知 JAVA 解密出现 Illegal key size 错误

本贴最后更新于 472 天前,其中的信息可能已经时移世改

一、前言

前两天公司的项目迭代完毕,准备上线新版本,结果项目最后只能在我的电脑上跑起来,其他人的电脑都不行,不过由于还有其它更重要一点的任务,所以就没有处理,昨天花时间解决了,因此在这里记录一下。

二、错误及解决流程

1、报错信息

java.security.InvalidKeyException: Illegal key size

2、信息排查

一开始我所关注的并不是这个信息,因为在它之前跳出的错误是 spring 不能加载某个 bean,从而导致的出错,在我检查完相关代码及配置文件,确定这个 bean 是已经被我配置好后,我才注意到了这个信息。

3、报错原因

根据我上网搜索到的内容显示,这是因为 JRE 中自带的“local_policy.jar ”和“US_export_policy.jar”是支持 128 位密钥的加密算法,而当我们要使用 256 位密钥算法的时候,已经超出它的范围,无法支持,所以才会报:“java.security.InvalidKeyException: Illegal key size or default parameters”的异常。

4、解决方案

4.1、先检查你环境的 JDK 版本

例如是 JDK6、JDK7、JDK8

4.2、去官方下载 JCE 无限制权限策略文件

这里给出几个链接:
JDK5
JDK6
JDK7
JDK8

4.3、下载后解压

可以看到 local_policy.jar 和 US_export_policy.jar 以及 readme.txt

01 微信 V3 支付出现错误.jpg

4.4、替换文件

如果安装了 JRE,将两个 jar 文件放到 %JRE_HOME%\lib\security 目录下覆盖原来的文件

02 微信 V3 支付出现错误.jpg

如果安装了 JDK,还要将两个 jar 文件也放到 %JDK_HOME%\jre\lib\security 目录下覆盖原来文件

03 微信 V3 支付出现错误.jpg

三、总结

由于我的上一任刚刚好就是坐在我现在这个位置的,同时因为老板刚刚好重装了他的电脑系统(原本他的电脑也配置了),所以这也就解释了为什么项目只能在我的电脑上跑起来。

以上就是我个人关于 微信 V3 支付 的一些笔记,如果有什么问题,可以将问题发我邮箱 luodiab@126.com ,欢迎各位的意见。

四、参考文章

微信支付 V3 支付通知 JAVA 解密出现 Illegal key size 错误

java.security.InvalidKeyException: Illegal key size 错误

加解密库下载与返回码

  • 微信

    腾讯公司 2011 年 1 月 21 日推出的一款手机通讯软件。用户可以通过摇一摇、搜索号码、扫描二维码等添加好友和关注公众平台,同时可以将自己看到的精彩内容分享到微信朋友圈。

    130 引用 • 793 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...