Help us understand the problem. What is going on with this article?

Javaで暗号化(ハッシュ)

More than 5 years have passed since last update.

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を使えば自前で作る必要ないですが、諸事情でライブラリ追加ができないのでこうなりました。
バカほど呼び出される関数というわけでもないのでこれでよしとしておきます。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away