异常: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版本解决,并踩此坑,记录留意

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容