一说

前情提示

系统:

微信支付分解除密钥长度的限制,解决Illegal key size异常

linux环境;

JDK1.8.121,但是另一JDK1.8.171没有这个问题,本地也没有这个问题,怀疑是可能版本有关;

AES解密大致报错:

java.security.InvalidKeyException: Illegal key size

项目到了bcprov-jdk15on-1.64.jar

解决方法:

修改前最好备份下原来文件,修改后重启下tomcat。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
近年来,美国放松了加密软件出口的条件。尽管如此,JCE和JSSE出口仍受到种种限制。
这种出口与进口的限制主要体现在JCE和JSSE的加密算法中。

Jdk中两个jar需要替换local_policy.jar和US_export_policy.jar,解除密钥长度的限制,解决Illegal key size异常

1.6版本
http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html
1.7版本
http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html
1.8版本:
http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html

如果安装了JRE,将两个jar文件放到%JRE_HOME%\lib\security目录下覆盖原来的文件;
如果安装了JDK,将两个jar文件放到%JDK_HOME%\jre\lib\security目录下覆盖原来文件
在这里下载:http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
这个是1.7的:http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html
将解压后的文件覆盖 …/jdk1.8.0_151/jre/lib/security/policy/limited/文件夹的local_policy.jar和US_export_policy.jar
重启tomcat,然后搞定!

Oracle需要登录,这个备份下JDK1.8官网下的policy文件(20201208下载)

https://janeyork.lanzous.com/iY63Yj5knqd