java.security.InvalidKeyException: Illegal key size错误
前言
最近技术替换国密算法,项目上线后发现生产在加密的时候报java.security.InvalidKeyException: Illegal key size
错误,而本地和测试环境都是没问题的。
问题原因
因为密钥长度是受限制的, java运行时环境读到的是受限的policy文件。文件位于${java_home}/jre/lib/security
.
当密钥长度大于128时会抛出java.security.InvalidKeyException: Illegal key size
异常。
解决方法
有policy 文件夹
找到java.security
把 # 注释去掉
#crypto.policy=unlimited
没有policy文件夹
去官方下载JCE无限制权限策略文件,将两个jar文件放到%JAVE_HOME%\jre\lib\security
目录下覆盖原来文件。如我本地:/usr/java/jdk1.7.0_80/jre/lib/security
直接替换 local_policy.jar,US_export_policy.jar
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
参考
1.https://blog.csdn.net/qq_34253002/article/details/128393835