web-dev-qa-db-ja.com

java aes 256 Java.security.InvalidKeyException:ポリシーのインストール後の不正なキーサイズ

aES256キーを使用したバイトの暗号化に問題があります。ポリシーはすでにインストールしています。これが私がしたことです:

  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暗号化を使用するには、何をする必要がありますか?

9
user2279172

ポリシーファイルで問題が解決するはずです。パス環境変数をチェックして、ポリシーファイルと同じjreを使用していることを確認します。

4
Saran Makam

重要:あなたはあなたがjreの場所を知っています。例:私の計算ではC:\Java\jre7\lib\securityC:\Java\jdk1.7.0_02\jre\lib\securityがありますが、EclipseはjreがC:\Java\jre7\lib\securityであることを示しているため、2つのファイルをここにコピーする必要があります。

3
hnrain

この場所からポリシーファイルをダウンロードしたこと http://www.Oracle.com/technetwork/Java/javase/downloads/jce-7-download-432124.html 場所に貼り付けjre/lib/security/そしてそれは機能します...

1
Lokesh Tiwari