启动应用java.security.InvalidKeyException: Illegal key size 异常
程序员文章站
2022-03-09 13:05:31
...
启动web应用时,提示
java.security.InvalidKeyException: Illegal key size 异常
由于项目采用了ace加密,当执行如下操作:
// 设置加密模式为AES的CBC模式 Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding"); SecretKeySpec keySpec = new SecretKeySpec(aesKey, "AES"); IvParameterSpec iv = new IvParameterSpec(aesKey, 0, 16); cipher.init(Cipher.ENCRYPT_MODE, keySpec, iv); // 加密 byte[] encrypted = cipher.doFinal(unencrypted);
cipher.init(Cipher.ENCRYPT_MODE, keySpec, iv);
如果密钥大于128,会抛出java.security.InvalidKeyException: Illegal key size 异常. 因为密钥长度是受限制的, java运行时环境读到的是受限的policy文件. 文件位于${java_home}/jre/lib/security, 这种限制是因为美国对软件出口的控制.
处理办法: 在官方网站下载JCE无限制权限策略文件
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
如果安装了JRE,将两个jar文件放到%JRE_HOME%\lib\security目录下覆盖原来的文件
如果安装了JDK,还要将两个jar文件也放到%JDK_HOME%\jre\lib\security目录下覆盖原来文件
推荐阅读
-
启动应用java.security.InvalidKeyException: Illegal key size 异常
-
加密异常----Caused by: java.security.InvalidKeyException: Illegal key size or default parameters
-
AES 秘钥长度问题:java.security.InvalidKeyException: Illegal key size or default parameters
-
java.security.InvalidKeyException: Illegal key size or default parameters 加密报错的解决办法
-
AES加密时报java.security.InvalidKeyException: Illegal key size or default parameters异常
-
启动应用java.security.InvalidKeyException: Illegal key size 异常
-
AES加密时报java.security.InvalidKeyException: Illegal key size or default parameters异常