次のエントリ: エミュレータでパケットキャプチャ [Android]
PKCS#5パディングでAES暗号化/復号
2011-01-25-2 / カテゴリ: [暗号][Java][Android] / [permlink]
初のAndroidネタ。というかJavaネタも初だった^^;
Androidは初学者だからもっと初学者ネタ(環境構築とか?)でもと思ったけど、入門系情報はたくさんあるので、うちらしく戯術っぽく小ネタで(ぇ
ソース
やっていることは、Perl版のこっちとまったく同じ[2011-01-25-1]。
AndroidでAES暗号化は、ググっても自分が理解できる__日本語の__ピンポイントな情報が見つけられなかったのでメモ。
Perlのコードと相互に変換できるから大丈夫と思う。
IVは128bit(16byte)以外の指定で InvalidAlgorithmParameterException (VI must be 16 bytes long)が発生する。
共通鍵は128bit(16byte),192bit(24byte),256bit(32byte)以外の指定で InvalidKeyException (Key length not 128/192/256 bits)が発生する。
なお、Cipher.getInstance()に指定できるパラメタ(暗号アルゴリズム、モード)はここに一覧あり。情報をくれた@gimvelkさん、ありがとうございました。
DESなら"DES/CBC/PKCS5Padding"、3DESなら"DESede/CBC/PKCS5Padding"など。(DESはすでにアレなんでセンシティブなデータに使わないように)
また、暗号のプロバイダに関する情報を@zaki50さんからいただきました。
androidとGAEでRSA暗号 - 明日の鍵
でも、暗号サービスプロバイダはよくわかってないんだよな^^; 実際の処理を行ってるライブラリが何か、みたいな話みたいだけど。
海外のプラットフォームで暗号周りは輸出規制なんかでいろいろあるからな…
Androidは初学者だからもっと初学者ネタ(環境構築とか?)でもと思ったけど、入門系情報はたくさんあるので、うちらしく戯術っぽく小ネタで(ぇ
ソース
public byte[] cryptAes(boolean encrypt, byte[] iv, byte[] key, byte[] enc) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, InvalidAlgorithmParameterException, IllegalBlockSizeException, BadPaddingException { // ivは16byte限定 // keyは128/196/256byte限定 AlgorithmParameterSpec ivSpec = new IvParameterSpec(iv); Key k = new SecretKeySpec(key, "AES"); Cipher ch = Cipher.getInstance("AES/CBC/PKCS5Padding"); if (encrypt) { ch.init(Cipher.ENCRYPT_MODE, k, ivSpec); } else { ch.init(Cipher.DECRYPT_MODE, k, ivSpec); } byte[] crypted = ch.doFinal(enc); return crypted; }こんな感じ。のはず。(Javaは自信がない…)
やっていることは、Perl版のこっちとまったく同じ[2011-01-25-1]。
AndroidでAES暗号化は、ググっても自分が理解できる__日本語の__ピンポイントな情報が見つけられなかったのでメモ。
Perlのコードと相互に変換できるから大丈夫と思う。
IVは128bit(16byte)以外の指定で InvalidAlgorithmParameterException (VI must be 16 bytes long)が発生する。
共通鍵は128bit(16byte),192bit(24byte),256bit(32byte)以外の指定で InvalidKeyException (Key length not 128/192/256 bits)が発生する。
なお、Cipher.getInstance()に指定できるパラメタ(暗号アルゴリズム、モード)はここに一覧あり。情報をくれた@gimvelkさん、ありがとうございました。
DESなら"DES/CBC/PKCS5Padding"、3DESなら"DESede/CBC/PKCS5Padding"など。(DESはすでにアレなんでセンシティブなデータに使わないように)
また、暗号のプロバイダに関する情報を@zaki50さんからいただきました。
androidとGAEでRSA暗号 - 明日の鍵
でも、暗号サービスプロバイダはよくわかってないんだよな^^; 実際の処理を行ってるライブラリが何か、みたいな話みたいだけど。
海外のプラットフォームで暗号周りは輸出規制なんかでいろいろあるからな…
次のエントリ: エミュレータでパケットキャプチャ [Android]
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
最終更新時間: 2013-05-02 16:12