启动应用java.security.InvalidKeyException: Illegal key size 异常_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 启动应用java.security.InvalidKeyException: Illegal key size 异常

启动应用java.security.InvalidKeyException: Illegal key size 异常

 2017/11/29 16:04:40  清风送月  程序员俱乐部  我要评论(0)
  • 摘要:启动web应用时,提示java.security.InvalidKeyException:Illegalkeysize异常由于项目采用了ace加密,当执行如下操作://设置加密模式为AES的CBC模式Ciphercipher=Cipher.getInstance("AES/CBC/NoPadding");SecretKeySpeckeySpec=newSecretKeySpec(aesKey,"AES");IvParameterSpeciv=newIvParameterSpec(aesKey
  • 标签:KEY Java 应用 启动 异常

启动web应用时,提示

java.security.InvalidKeyException: Illegal key size 异常

由于项目采用了ace加密,当执行如下操作:

class="java" name="code">// 设置加密模式为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目录下覆盖原来文件

发表评论
用户名: 匿名