Java"非法密钥大小"尽管已经安装了JCE Unlimited Strength Jurisdiction Policy Files

时间:2016-11-06 10:54:23

标签: java encryption cryptography aes

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

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

我已经通过替换.jar处的两个$JAVA_HOME$\jre\lib\security文件来安装JCE无限强度管辖权政策文件。我尝试过这些文件的不同版本。我重新安装了较新版本的Java 8并更新了PATH环境变量。什么都行不通。我仍然收到错误,Cipher.getMaxAllowedKeyLength("AES/CBC/NoPadding")仍然返回128。

1 个答案:

答案 0 :(得分:2)

我在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下的那些 - 我不确定这是否有必要,但它确实有效。