码迷,mamicode.com
首页 > 编程语言 > 详细

java密钥长度受限制问题解决

时间:2019-01-11 14:15:14      阅读:659      评论:0      收藏:0      [点我收藏+]

标签:注释   jdk6   strong   限制   解决办法   http   port   ext   文件   

一、报错信息

java.security.InvalidKeyException: Illegal key size or default parameters

二、错误中文翻译

java安全无效密钥异常:非法密钥大小或默认参数

三、错误解释

Illegal key size or default parameters是指密钥长度是受限制的,java运行时环境是受限于policy文件。
文件位于${java_home}/jre/lib/security下,这种限制是因为美国对软件出口的控制。

四、为什么报错

因为美国的进口管制限制,Java发布的运行环境包中的加解密有一定的限制,默认不允许256位密钥的AES加解密

五、解决办法

就是修改策略文件,更改成官网提供的JCE无限制权限策略文件。


JDK6的下载地址:

https://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html
文件名叫:jce_policy-6.zip


JDK7的下载地址:
https://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html
文件名叫:UnlimitedJCEPolicyJDK7.zip


JDK8的下载地址:
(这里注意一下JDK8的这个包只适用于Java 1.8.0_151以前的Java 1.8版本,Java 1.8.0_151以后的版本包括Java 1.8.0_151的往后看)
https://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
文件名叫:jce_policy-8.zip


下载后解压,可以看到local_policy.jar和US_export_policy.jar以及readme.txt,
替换${java_home}/jre/lib/security/ 下面的local_policy.jar和US_export_policy.jar即可

六、JDK1.8.0_151及其以后的版本怎么解决

JDK1.8.0_151及其以后的版本无需去官网下载 local_policy.jar和US_export_policy.jar这两个jar包,只需要修改${java_home}/jre/lib/security/ 这目录下的java.security文件配置即可.
具体过程和说明如下:
1、说明
从Java 1.8.0_151版本开始,java公司为JVM启用无限制强度管辖策略,有了一种新的更简单的方法。如果不启用此功能,则不能使用AES-256,启用起来也非常方便。
2、看图
技术分享图片
看图后说明:你会发现${java_home}/jre/lib/security/没有了上文提到的local_policy.jar和US_export_policy.jar两个文件,而多了一个policy文件夹,而它的下面还有两个文件夹,在其子文件下面分别都有local_policy.jar和US_export_policy.jar两个文件。而它的两个子文件夹的含义就是limited(有限制)和unlimited(无限制),这下我相信你应该明白了。没错,我们直接启动unlimited(无限制)即可。
3、启动unlimited(无限制)
把java.security文件的第826行的注释去掉即可,如下图所示:
技术分享图片
4、重启java项目即可。

java密钥长度受限制问题解决

标签:注释   jdk6   strong   限制   解决办法   http   port   ext   文件   

原文地址:http://blog.51cto.com/zpf666/2341494

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!