3

当密钥长度为 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/,我仍然遇到了同样的异常。

4

2 回答 2

15

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

您需要的是一组名为Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files的文件,目前可在Java SE 下载页面获得。这个 zip 文件包含几个策略 jar,您需要将它们复制到JRE的{java.home}/jre/lib/security目录中已有的顶部。

这将使您可以将密钥强度更改为 128 位以上

于 2013-10-21T20:25:28.193 回答
0

您使用的是什么 Java 实现?

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

于 2013-10-21T20:24:32.840 回答