Posted at

JavaでAES256を使用できるようにする

More than 3 years have passed since last update.


概要

Javaには、Cipherという暗号化/復号化を行うクラスが用意されている。

デフォルトのままだとAESの鍵の長さは128bitしか使えない。

これは、(AESの規格を定めた)アメリカの輸出規制か何かの制限によるものらしいが、

ここによると日本ではこの制限を受けないので、

Javaのポリシーファイルを書き換えれば256bitも使える。


JCE(Java Cryptography Extension)の無制限強度の管轄ポリシーファイルをダウンロード

バージョンによってファイルも変わるので注意。

バージョン
ダウンロード元
ファイル名

JDK1.6
JCE Unlimited Strength Jurisdiction Policy Files 6
jce_policy-6.zip

JDK1.7
JCE Unlimited Strength Jurisdiction Policy Files 7
UnlimitedJCEPolicyJDK7.zip

JDK1.8
JCE Unlimited Strength Jurisdiction Policy Files 8
jce_policy-8.zip


ダウンロードしたJCE(Java Cryptography Extension)の無制限強度の管轄ポリシーファイルを差し替え


  1. zipファイルの解凍

  2. ファイル内に入っている「US_export_policy.jar」と「local_policy.jar」を以下の場所にコピー(既に同名ファイルが存在しているので、上書きする)



  • Windows



    %JAVA_HOME%\jre\lib\security



  • Linux



    $JAVA_HOME/jre/lib/security


あとはここを参考にコーディングすればよろしいかと。

以上!