2014-12-15
10:12 PM
因為Java預設最大的AES加密金鑰長度為128
因此若超過此長度會拋出以下異常
java.security.InvalidKeyException: Illegal key size or default parameters
此問題可在下載
Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files
之後解決
下載後將local_policy.jar及US_export_policy.jar 取代jre/security底下的兩個檔案即可
若取代後依舊無法使用長度128位元以上的金鑰加密字串
則可以在系統或程式初始化時加入以下程式碼解除限制
// 僅限java 7以上 Field field = Class.forName("javax.crypto.JceSecurity"). getDeclaredField("isRestricted"); field.setAccessible(true); field.set(null, java.lang.Boolean.FALSE);
各項資料連結
Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 7 Download
No comments:
Post a Comment