java aes 256 java.security.InvalidKeyException:安装策略后密钥大小非法


问题内容

我使用AES 256密钥加密字节时遇到问题。我已经安装了该策略。这是我所做的:

  1. 下载文件:http : //www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html
  2. 我将文件local_policy和US_export_policy移至目录/Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/jre/lib/security
  3. 我重新启动Mac

但是我仍然收到以下代码的错误消息:

KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
keyGenerator.init(256);
SecretKey secretKey = keyGenerator.generateKey();
Cipher decryption = Cipher.getInstance("AES/CBC/PKCS5PADDING");
decryption.init(Cipher.DECRYPT_MODE, secretKey, 
new IvParameterSpec(secretKey.getEncoded())); // <-- Illegal key size

我的Java版本:

java version "1.7.0_40"
Java(TM) SE Runtime Environment (build 1.7.0_40-b43)
Java HotSpot(TM) 64-Bit Server VM (build 24.0-b56, mixed mode)

我必须做些什么才能使用256 AES加密?


问题答案:

策略文件应解决此问题。检查路径环境变量,以确认您使用的是具有策略文件的相同jre。