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

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)