我已经将JCE Unlimited强度安装到JAVA_HOME \ lib \ security
但是,我Cipher.getMaxAllowedKeyLength("AES")
仍然获得128。
我想知道我是否在错误的地方安装了JCE
我在两个地方安装了Java。
谁能告诉我安装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);
}
答案 0 :(得分:3)
您需要将文件安装到要运行代码的JVM中。为了安全起见,我主张在两者中安装它。
我注意到你有两个不同的版本:Java 7用于JRE,Java 6用于SDK。请记住,Java 6和7具有不同的无限强度策略文件,因此您需要下载这两个集。
C:\Program Files\Java\jre7\lib\security
。C:\Development\Java\jdk1.6.0_21\jre\lib\security
。