Androidで文字列をAES暗号化、復号する
Androidで文字列の暗号化、復号するサンプルを作りました。
コードはこちら。 GitHub - itog/CryptoSample: encrypt and decrypt text on Android
使い方
上のテキストボックスにテキストを入力して、真ん中左のencryptボタンを押すと暗号化された文章が下のテキストボックスに表示されます。
反対に真ん中右側のボタンを押すと文章が復号され、上のテキストボックスに表示されます。もし暗号化されてBase64エンコードされたデータがあるなら直接下のテキストボックスに入力してもOKです。
サンプルの解説
使い方
encrypt, decryptともスタティックメソッドなので、シードと暗号化・復号したいテキストを渡すだけです。
Crypto.encrypt(CRYPT_SEED, plainText); Crypto.decrypt(CRYPT_SEED, encryptedText);
ちなみにサンプルでは"hoge"なんてSEEDを使っていますが、実際に使う場合はハードコーディングではなくて、簡単には読み取れないような処理をした値を使いましょう。
暗号化処理
暗号化の処理を実際にやっているのは以下のメソッドです。AESで暗号化しています。
private static byte[] encrypt(byte[] raw, byte[] plain) throws Exception { SecretKeySpec keySpec = new SecretKeySpec(raw, "AES"); Cipher cipher = Cipher.getInstance("AES"); cipher.init(Cipher.ENCRYPT_MODE, keySpec); byte[] encrypted = cipher.doFinal(plain); return encrypted; }