2013-10-21 206 views
3

當密鑰長度爲128位時,一切正常。但是當我使用長度爲192或256位的密鑰時,我得到了以下異常。java.security AES加密密鑰長度

java.security.InvalidKeyException: Illegal key size or default parameters 
at javax.crypto.Cipher.a(DashoA13*..) 
at javax.crypto.Cipher.a(DashoA13*..) 
at javax.crypto.Cipher.a(DashoA13*..) 
at javax.crypto.Cipher.init(DashoA13*..) 
at javax.crypto.Cipher.init(DashoA13*..) 

我發現這個Java Security: Illegal key size or default parameters?。但是,我下載了jar文件並將其放入${java.home}/lib/security/之後,我仍然得到相同的異常。

回答

0

您使用的是什麼Java實現?

如果你看文檔(如here),你可以看到他們可能只支持特定的密鑰長度。這個只支持128位。

14

Java默認最大強度爲128位。

您需要的是一組名爲的文件Java加密擴展(JCE)無限強度管轄策略文件,當前可在Java SE download page處獲得。此zip文件包含幾個策略瓶,您需要將其複製到JRE的{java.home}/jre/lib/security目錄中。

這將讓你改變上述128位

+0

的關鍵力量,但我從http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243下載jar文件.html,並將其放在$ {java.home}/lib/security /下,仍然有異常。 – Cacheing

+0

我只需要將jar放入目錄中,對不對? – Cacheing

+0

是的,你需要做的就是把這些jar文件放在運行java程序的JRE的lib/security目錄下 –