我正在尝试使用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。

最佳答案

我在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下的内容-我不确定这是否必要,但可以。

10-08 02:49