使用できる暗号
Java「AES暗号」メモ(Hishidama's AES Sample)でAES暗号について学ぶ.「使用できる暗号」項のコード
Set names = Security.getAlgorithms("Cipher"); for (Iterator i = names.iterator(); i.hasNext();) { String name = (String) i.next(); System.out.println(name); }
の結果(java version "1.6.0_13")は
BLOWFISH ARCFOUR PBEWITHMD5ANDDES RC2 RSA PBEWITHMD5ANDTRIPLEDES PBEWITHSHA1ANDDESEDE DESEDE AESWRAP AES DES DESEDEWRAP RSA/ECB/PKCS1PADDING PBEWITHSHA1ANDRC2_40
無制限強度のポリシー
これも先述のページから転載.
AESの鍵の長さは128bit・192bit・256bitの3種類あるが、デフォルトでは128bitしか使えない。[2006-11-18]
これは、(AESの規格を定めた)アメリカの輸出規制か何かの制限によるものらしい。
使おうとすると、Cipher#init()の実行時に以下のような例外が発生する。java.lang.SecurityException: Unsupported keysize or algorithm parameters
Oracle Technology Network for Java Developers | Oracle Technology Network | Oracleから「Java Cryptography Extension (JCE) 無制限強度の管轄ポリシーファイル 6 」,「jce_policy-6.zip」を取得し,適切に更新する.