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