java.security AES加密密钥长度

时间:2013-10-21 20:20:24

标签: java encryption aes

当密钥长度为128位时,一切正常。但是当我使用长度为192或256位的密钥时,我得到以下异常。

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/之后,我仍然遇到了同样的例外。

2 个答案:

答案 0 :(得分:14)

Java的默认最大强度为128位。

您需要的是一组名为 Java密码术扩展(JCE)无限强度管辖权政策文件的文件,目前可在Java SE download page获取。此zip文件包含几个策略jar,您需要将其复制到JRE的 {java.home} / jre / lib / security 目录中的那些策略jar的顶部。

这样可以将密钥强度更改为高于128位

答案 1 :(得分:0)

您使用的是什么Java实现?

如果您查看文档(例如here),您会发现它们可能只支持特定的密钥长度。这个只支持128位。