天天看點

錯誤: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目錄下,對應覆寫這兩個權限檔案。很多開發人員往往忽略了這一點,導緻事故發生。