1. 程式人生 > >錯誤:java.security.InvalidKeyException: Illegal key size or default parameters解決方法

錯誤:java.security.InvalidKeyException: Illegal key size or default parameters解決方法

Java幾乎各種常用加密演算法都能找到對應的實現。因為美國的出口限制,Sun通過許可權檔案(local_policy.jar、US_export_policy.jar)做了相應限制。因此存在一些問題:
●金鑰長度上不能滿足需求(如:java.security.InvalidKeyException: Illegal key size or default parameters);
●部分演算法未能支援,如MD4、SHA-224等演算法;
●API使用起來還不是很方便;一些常用的進位制轉換輔助工具未能提供,如Base64編碼轉換、十六進位制編碼轉換等工具。

    Oracle在其官方網站上提供了無政策限制許可權檔案(Unlimited Strength Jurisdiction Policy Files),我們只需要將其部署在JRE環境中,就可以解決限制問題。
下載地址:
      

Java 5.0 無政策限制檔案
      ●Java 6 無政策限制檔案
      ●Java 7 無政策限制檔案
      ●其他版本 無政策限制檔案

      下載的壓縮包中僅有一個目錄,也就是jce目錄。該目錄中包含了4個檔案:README.txt、COPYRIGHT.html、local_policy.jar和US_export_policy.jar。其中包含的兩個jar檔案正是此次配置中用到的檔案。
      我們可以檢視上述README.txt檔案,你需要在JDK的JRE環境中,或者是JRE環境中配置上述兩個jar檔案。
      切換到%JDK_Home%\jre\lib\security目錄下,對應覆蓋local_policy.jar和US_export_policy.jar兩個檔案。同時,你可能有必要在%JRE_Home%\lib\security目錄下,也需要對應覆蓋這兩個檔案。
      配置許可權檔案的最終目的是為了使應用在執行環境中獲得相應的許可權,可以加強應用的安全性。通常,我們在應用伺服器上安裝的是JRE,而不是JDK。因此,這就很有必要在應用伺服器的%JRE_Home%\lib\security目錄下,對應覆蓋這兩個許可權檔案。很多開發人員往往忽略了這一點,導致事故發生。