在使用java自带的加密算法时,会出现java.security.InvalidKeyException: Illegal key size报错,这是由于使用了高强度的加密算法所致(受到美国出口管制法律的限制,限制了密钥长度,如 AES 最大支持 128 位)。
此时需要安装 JCE 无限制权限策略文件,可以启用更高强度的加密算法(如 AES-256)。
下面指出如何修正此类报错
1、下载JCE无限制权限策略文件
JDK8:
https://www.oracle.com/java/technologies/javase-jce8-downloads.html
JDK7:
https://www.oracle.com/java/technologies/javase-jce7-downloads.html
JDK6:
https://www.oracle.com/java/technologies/jce-6-download.html
其他版本可以在Oracle官网搜索Java Cryptography Extension查找。
2、将下载的文件解压,得到两个jar包
3、替换文件
找到%JAVA_HOME%配置的目录文件夹,我的是D:\software\java\jdk1.8.0_151,将两个jar文件放到\jre\lib\security目录下(如已有两个相同文件名的jar包记得备份后覆盖掉)即可。
如果配置了多个java环境,如我就配置了JAVA17_HOME和JAVA8_HOME,需要找到实际项目使用的jdk或者jre版本所在目录的\lib\security文件夹下。