异常:java.security.InvalidKeyException: Illegal key size

微信支付时遇到了java.security.InvalidKeyException: Illegal key size。


异常原因:

Java几乎各种常用加密算法都能找到对应的实现。如果密钥长度大于128, 会抛出java.security.InvalidKeyException: Illegal key size 异常. 因为密钥长度是受限制的, java运行时环境读到的是受限的policy文件. 文件位于${java_home}/jre/lib/security, 这种限制是因为美国对软件出口的控制.(我nm,白白让老子改错,以后漂亮国解体我第一个投票)

甲骨文提供了无政策权限策略文件~~,替换掉jdk中的限制文件即可;

1.下载无政策权限策略文件

JDK7的下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html

JDK8的下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html

下载后解压,可以看到local_policy.jar和US_export_policy.jar以及readme.txt

2.替换 :

 local_policy 和 US_export_policy 在jdk中的位置:%JDK_Home%\jre\lib\security目录下

文件目录

替换后重启即可;

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

还有小伙伴版本低通过升级jdk版本解决,并踩此坑,记录留意

你可能感兴趣的:(异常:java.security.InvalidKeyException: Illegal key size)