モノワスレ

ブログに書いて忘れましょう

Cipherオブジェクトの生成

Androidでやってたんだけど、即効忘れそうなのでメモしておく。
http://java.sun.com/j2se/1.4/ja/docs/ja/guide/security/jce/JCERefGuide.html#AppA

public static Cipher getInstance(String transformation);

transformation には、以下のような書式で変換名を指定する。
後者の方を利用する場合、暗号化プロバイダのデフォルト方式でmode,paddingが決まる。

  • algorithm/mode/padding
  • algorithm
algorithm

暗号化アルゴリズムを表す。
AES、Browfish、DES などを指定します。

mode

暗号化モード?
NONE、CBC、ECB などを指定します。
※CBCは、暗号化・復号化で同じIV(Initialization Vector)を指定する必要があったり少し面倒。

padding

暗号化アルゴリズムによって利用できるブロック長が決まっているが、それに満たない場合に埋めて欲しい場合に指定する。
NoPadding、PKCS5Padding などを指定します。

    • -

PBEKeySpec を使うときの SecretKeyFactory の アルゴリズム指定がまたよくわからない。。
http://codereview.stackexchange.com/questions/7297/secure-aes-encryption-and-decryption-in-android