Java實現AES加密,異常java.security.InvalidKeyException: Illegal key size 的解決
Java實現AES加密,拋出異常如下:
java.security.InvalidKeyException: Illegal key size
代碼參考 http://my.oschina.net/Jacker/blog/86383?fromerr=x3l5xL1a
原因:
Illegal key size or default parameters 是指密鑰長度受限制,
java運行時環境讀到的是受限的policy文件。
policy文件位於${java_home}/jre/lib/security 目錄下。
這種限制是因為美國對軟件出口的控制。
解決辦法:
去除該限制只需下載 Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files,
覆蓋上述目錄下的對應jar文件(local_policy.jar, US_export_policy.jar)即可。
下載地址:
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
下載包的readme.txt 有安裝說明,即替換
${jdk_home}/jre/lib/security
${jre_home}/lib/security
目錄下的 local_policy.jar 和 US_export_policy.jar 文件。
參考 http://stackoverflow.com/questions/6481627/java-security-illegal-key-size-or-default-parameters
Java實現AES加密,異常java.security.InvalidKeyException: Illegal key size 的解決