1、報錯信息html
java.security.InvalidKeyException: Illegal key size or default parametersjava
2、錯誤中文翻譯安全
java安全無效密鑰異常:非法密鑰大小或默認參數oracle
3、錯誤解釋ide
Illegal key size or default parameters是指密鑰長度是受限制的,java運行時環境是受限於policy文件。
文件位於${java_home}/jre/lib/security下,這種限制是由於美國對軟件出口的控制。翻譯
4、爲何報錯htm
由於美國的進口管制限制,Java發佈的運行環境包中的加解密有必定的限制,默認不容許256位密鑰的AES加解密blog
5、解決辦法ip
就是修改策略文件,更改爲官網提供的JCE無限制權限策略文件。get
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便可
6、JDK1.8.0_151及其之後的版本怎麼解決
JDK1.8.0_151及其之後的版本無需去官網下載 local_policy.jar和US_export_policy.jar這兩個jar包,只須要修改${java_home}/jre/lib/security/ 這目錄下的java.security文件配置便可.
具體過程和說明以下:
一、說明
從Java 1.8.0_151版本開始,java公司爲JVM啓用無限制強度管轄策略,有了一種新的更簡單的方法。若是不啓用此功能,則不能使用AES-256,啓用起來也很是方便。
二、看圖
看圖後說明:你會發現${java_home}/jre/lib/security/沒有了上文提到的local_policy.jar和US_export_policy.jar兩個文件,而多了一個policy文件夾,而它的下面還有兩個文件夾,在其子文件下面分別都有local_policy.jar和US_export_policy.jar兩個文件。而它的兩個子文件夾的含義就是limited(有限制)和unlimited(無限制),這下我相信你應該明白了。沒錯,咱們直接啓動unlimited(無限制)便可。
三、啓動unlimited(無限制)
把java.security文件的第826行的註釋去掉便可,以下圖所示:
四、重啓java項目便可。