異常: java.security.InvalidKeyException: Illegal key size

來源:互聯網
上載者:User

標籤:load   oracle   許可權   美國   環境   jre_home   creat   方案   nop   

今天在做介面測試的時候遇到個異常:

 java.security.InvalidKeyException: Illegal key size。
        SecretKeySpec secretKeySpec = new SecretKeySpec(aesKey, "AES");        Cipher cipher = Cipher.getInstance("AES/CTR/NoPadding");        IvParameterSpec ips = createCtrIv(nonce);        cipher.init(1, secretKeySpec, ips);    //當代碼運行到這一行時就報錯了。爆出上面的異常

感到一臉懵逼,還好網路是萬能的,百度一下,簡單對比一下,就找到瞭解決方案。然後測試之後發現也是沒有問題的。

異常原因:如果密鑰大於128, 會拋出java.security.InvalidKeyException: Illegal key size 異常. 因為密鑰長度是受限制的, java運行時環境讀到的是受限的policy檔案. 檔案位於${java_home}/jre/lib/security, 這種限制是因為美國對軟體出口的控制.

解決方案:去官方下載JCE無限制權限原則檔案。

jdk 5: http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-java-plat-419418.html#jce_policy-1.5.0-oth-JPR

jdk6: http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html

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目錄下覆蓋原來檔案。

 

然後DuangDuangDuangDuang,就ok了。

異常: java.security.InvalidKeyException: Illegal key size

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.