JDK1.8.0_151无需去官网下载 local_policy.jar
US_export_policy.jar
这个jar包,只须要修改Java\jdk1.8.0_151\jre\lib\security
这目录下的java.security
文件配置便可。html
随着愈来愈多的第三方工具只支持 JDK8,最近公司也计划从 JDK7 升级到 JDK8,在线下环境升级过程当中,发现某些项目报如下异常:java
java.security.InvalidKeyException: Illegal key size
这是由于某些国家的进口管制限制,JDK默认的加解密有必定的限制。
好比默认不容许 256 位密钥的 AES 加解密,解决方法就下载官方JCE无限制强度加密策略文件,覆盖便可。安全
可是发现公司选用的 1.8.0_151 版本的 $JAVA_HOME/jre/lib/security/
目录下面多了一个 policy
文件夹,里面还有两个文件夹编辑器
├── limited │ ├── local_policy.jar │ └── US_export_policy.jar └── unlimited ├── local_policy.jar └── US_export_policy.jar
因而搜了一下,发现了这篇文章:Java Unlimited Strength Crypto Policy for Java 9 or 1.8.0_151,如下内容为该文章的翻译。工具
从Java 1.8.0_151和1.8.0_152开始,为JVM启用 无限制强度管辖策略 有了一种新的更简单的方法。若是不启用此功能,则不能使用AES-256。加密
请在 jre/lib/security
文件夹中查找文件 java.security
。
例如,对于Java 1.8.0_152
,文件结构以下所示:spa
/jdk1.8.0_152 |- /jre |- /lib |- /security |- java.security
如今用文本编辑器打开java.security
,并找到定义java安全性属性crypto.policy
的行,它能够有两个值limited
或unlimited
- 默认值是limited
。.net
默认状况下,您应该能找到一条注释掉的行:翻译
#crypto.policy=unlimited
您能够经过取消注释该行来启用无限制,删除#
:code
crypto.policy=unlimited
如今从新启动指向JVM的Java应用程序便可。