JDK1.8.0_151無需去官網(wǎng)下載 local_policy.jar
US_export_policy.jar
這個jar包,只需要修改Java\jdk1.8.0_151\jre\lib\security
這目錄下的java.security
文件配置即可。
隨著越來越多的第三方工具只支持 JDK8,最近公司也計劃從 JDK7 升級到 JDK8,在線下環(huán)境升級過程中,發(fā)現(xiàn)某些項目報以下異常:
java.security.InvalidKeyException: Illegal key size
這是因為某些國家的進(jìn)口管制限制,JDK默認(rèn)的加解密有一定的限制。
比如默認(rèn)不允許 256 位密鑰的 AES 加解密,解決方法就下載官方JCE無限制強(qiáng)度加密策略文件,覆蓋即可。
但是發(fā)現(xiàn)公司選用的 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
于是搜了一下,發(fā)現(xiàn)了這篇文章:Java Unlimited Strength Crypto Policy for Java 9 or 1.8.0_151,以下內(nèi)容為該文章的翻譯。
從Java 1.8.0_151和1.8.0_152開始,為JVM啟用 無限制強(qiáng)度管轄策略 有了一種新的更簡單的方法。如果不啟用此功能,則不能使用AES-256。
請在 jre/lib/security
文件夾中查找文件 java.security
。
例如,對于Java 1.8.0_152
,文件結(jié)構(gòu)如下所示:
/jdk1.8.0_152
|- /jre
|- /lib
|- /security
|- java.security
現(xiàn)在用文本編輯器打開java.security
,并找到定義java安全性屬性crypto.policy
的行,它可以有兩個值limited
或unlimited
- 默認(rèn)值是limited
。
默認(rèn)情況下,您應(yīng)該能找到一條注釋掉的行:
#crypto.policy=unlimited
您可以通過取消注釋該行來啟用無限制,刪除#
:
crypto.policy=unlimited
現(xiàn)在重新啟動指向JVM的Java應(yīng)用程序即可。
Read More
- Java Unlimited Strength Crypto Policy for Java 9 or 1.8.0_151
- JCE policy changes in Java SE 8u151, 8u152 and 8u162
- AES的256位密鑰加解密報 java.security.InvalidKeyException: Illegal key size or default parameters 異常的處理及處理工具
JDK1.8.0_151之前的版本 參考 :http://czj4451.iteye.com/blog/1986483
轉(zhuǎn)自:http://blog.kail.xyz/post/2018-06-23/java/jce-policy-changes-in-java-se-8u151.html