Javaで暗号化(ハッシュ)

  • 39
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

Javaで暗号化(ハッシュ値取得)しなきゃならなくなりまして、面倒だなぁと思いながらも調べてみたら簡単にできました。
忘れても大丈夫なように残しておきます。
パラメータalgorithmNameに標準名でアルゴリズムを指定すればそのアルゴリズムで暗号化してHex化した文字列を取得できます。

使えるアルゴリズムは標準名 > MessageDigestのところに書いてありまが、下記の通りです。

  • MD2
  • MD5
  • SHA-1
  • SHA-256
  • SHA-384
  • SHA-512
exsample.java
private String toEncryptedHashValue(String algorithmName, String value) {
    MessageDigest md = null;
    StringBuilder sb = null;
    try {
        md = MessageDigest.getInstance(algorithmName);
    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
    }
    md.update(value.getBytes());
    sb = new StringBuilder();
    for (byte b : md.digest()) {
        String hex = String.format("%02x", b);
        sb.append(hex);
    }
    return sb.toString();
}

16進文字列化の部分はHex.encodeHex@org.apache.commons.codec.binary.Hexを使えば自前で作る必要ないですが、諸事情でライブラリ追加ができないのでこうなりました。
バカほど呼び出される関数というわけでもないのでこれでよしとしておきます。