LoginSignup
45
49

More than 5 years have passed since last update.

Javaで暗号化(ハッシュ)

Posted at

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

45
49
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
45
49