【Android】文字列をMD5でハッシュ化する方法

使用される場所が大分限定的かもしれませんが…今回、分け合って調べたので備忘録としてまとめ。
JavaでMD5ハッシュを行う方法です。

今回参考に…というか、コードをまるっとコピーさせていただいたサイトはこちらから。

後ろ向きに全力疾走: AndroidでMD5ハッシュを使う
http://taiwanology.blogspot.com/2012/06/androidmd5.html

参考にさせていただいた記事って、こうでもしないとすぐにどこかにやってしまうので…ご紹介という形で保存します。

 

コード自体はこちら。

public String md5(String s) {
    try {
        // Create MD5 Hash
        MessageDigest digest = java.security.MessageDigest.getInstance("MD5");
        digest.update(s.getBytes());
        byte messageDigest[] = digest.digest();

        // Create Hex String
        StringBuffer hexString = new StringBuffer();
        for (int i=0; i<messageDigest.length; i++)
            hexString.append(String.format("%02x", messageDigest[i] & 0xff));
        return hexString.toString();

    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
    }
    return "";
}

関数化されているので、そのままコピーして使うことができました。
なお、上で紹介した記事内では、11行目が

hexString.append(Integer.toHexString(0xFF &amp; messageDigest[i]));

になっていますが、コメント欄で、「この書き方では0埋めされない」とのことで、

hexString.append(String.format("%02x", messageDigest[i] & 0xff));

上記の記述があったので、こちらに書き換えました。
記事のコードをコピーした時は、11行目でエラーが発生していましたが、こちらに修正したところ、エラーもなく動作しました。

 

以上、Javaで文字列をMD5ハッシュ化する方法でした。
今回はマルコピしたコードの紹介でした…。
が、私としては凄く便利で助かったので、是非ご活用ください。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG