- ベストアンサー
RC4で32bitキーを使いたい
Java5.0でSecretKeySpecを使いキーを作成したいのですが、「40bit以上1024bit以下でキーを作れ」と言われます。どうしても32bitでキーを作りたいのですが、どうすればいいでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
該当のソースコードと例外の発生箇所を提示したほうが、レスがつきやすいと思います。 とりあえず、こちらで調べた限りでは、 Sunの純正のJCEでは無理な感じです。>32bit Keyで暗号化 よって他の暗号プロバイダを導入してみてはいかがでしょうか? ColdFusion MX 7 での強力暗号化機能 http://www.macromedia.com/jp/support/coldfusion/ts/documents/e546373d.htm のアドレスにあった「Bouncy Castle Crypto 」をこちらの環境で導入したところ、下記ソースで動作しましたので。(%JAVA_HOME%jre\lib\securityファイルを書き換える必要がありましたが。) 以下 参考サンプル。 import javax.crypto.spec.SecretKeySpec; public class Main { public static void main(String[] args) throws Exception { byte[] keys= new byte[]{(byte)60};//暗号鍵 String PlanText = "HOGE"; //平文 SecretKeySpec spec = new SecretKeySpec(keys,"RC4"); javax.crypto.Cipher cipher = javax.crypto.Cipher.getInstance("RC4"); //暗号化 cipher.init(javax.crypto.Cipher.ENCRYPT_MODE, spec); byte[] encrypted = cipher.doFinal(PlanText.getBytes()); System.out.println(new String(encrypted)); //復号化 cipher.init(javax.crypto.Cipher.DECRYPT_MODE, spec); byte[] decrypted = cipher.doFinal(encrypted); System.out.println(new String(decrypted)); } } #あとこの内容で解決した場合は、お手数ですがマルチポスト先にも解決内容を反映してください。
お礼
ありがとうございます。 おかげさまで解決しました。