Java "Illegal key size" 尽管已安装 JCE Unlimited Strength Jurisdiction 策略文件

Java "Illegal key size" despite having installed JCE Unlimited Strength Jurisdiction Policy Files

我正在尝试使用 256 位 AES 加密,但出现以下异常: java.security.InvalidKeyException: Illegal key size

如果我使用 128 位密钥,则一切正常。

我已经通过替换 $JAVA_HOME$\jre\lib\security 中的两个 .jar 文件安装了 JCE Unlimited Strength Jurisdiction 策略文件。我试过这些文件的不同版本。我已经重新安装了更新版本的 Java 8 并更新了 PATH 环境变量。什么都不管用。我仍然得到错误,Cipher.getMaxAllowedKeyLength("AES/CBC/NoPadding") 仍然是 returns 128.

我在 Windows 8. 最初我安装了 Java 1.8.0_25 并且 C:\Program Files\Java 下只有一个文件夹 jdk1.8.0_25.我正在替换 C:\Program Files\Java\jdk1.8.0_25\jre\lib\security 处的 jar 文件。那没用。

我安装了最新版本(1.8.0_111)后,除了新的jdk文件夹jdk1.8.0_111外,还出现了一个新文件夹:jre1.8.0_111.

替换 C:\Program Files\Java\jre1.8.0_111\lib\security 中的两个 jar 文件解决了问题。我还替换了 C:\Program Files\Java\jdk1.8.0_111\jre\lib\security 下的那些 - 我不确定是否有必要,但它有效。