Java で文字列をMD5ダイジェストの16進数形式文字列に変換するには

February 13, 2007

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public String createDigest(String source) {
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] data = source.getBytes();
md.update(data);
byte[] digest = md.digest();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < digest.length; i++) {
int b = (0xFF & digest\[i\]);
if (b < 16)
sb.append("0");
sb.append(Integer.toHexString(b));
}
return sb.toString();
}

※ご指摘のゼロ補完処理を追加(2012/2/25)

tilfin freelance software engineer