已安装JCE Unlimited Strength但不支持AES 256

我已经为JAVA_HOME \ lib \ security安装了JCE Unlimited strength
但是,我仍然得到128 Cipher.getMaxAllowedKeyLength("AES")

我想知道我是否在错误的地方安装了JCE。
我在2个地方安装了Java。

  1. C:\ Program Files \ Java \ jre7
  2. C:\开发\的Java \ jdk1.6.0_21

谁能告诉我安装JCE无限力量的正确位置在哪里? 非常感谢您的帮助。

我的代码:

  KeyGenerator generator = KeyGenerator.getInstance("AES"); generator.init(256); SecretKey secretKey = generator.generateKey(); byte[] raw= secretKey.getEncoded(); SecretKeySpec sskey= new SecretKeySpec(raw, "AES"); Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); if (mode == Cipher.ENCRYPT_MODE) { Cipher.getMaxAllowedKeyLength("AES")); cipher.init(Cipher.ENCRYPT_MODE, sskey); CipherInputStream cis = new CipherInputStream(is, cipher); doCopy(cis, os); } else if (mode == Cipher.DECRYPT_MODE) { cipher.init(Cipher.DECRYPT_MODE, sskey); CipherOutputStream cos = new CipherOutputStream(os, cipher); doCopy(is, cos); } 

您需要将文件安装到要运行代码的JVM中。 为了安全起见,我主张在两者中安装它。

我注意到你有两个不同的版本:Java 7用于JRE,Java 6用于SDK。 请记住,Java 6和7具有不同的无限强度策略文件,因此您需要下载这两个集。

  • 对于JRE,请安装到C:\Program Files\Java\jre7\lib\security
  • 对于JDK,请安装到C:\Development\Java\jdk1.6.0_21\jre\lib\security