Javaでパスワードハッシュ値を16進数文字列で返す

public static String getHash(String org, String algorithm) {
// 引数・アルゴリズム指定が無い場合は計算しない
if ((org == null) || (algorithm == null)) {
  return null;
}

// 初期化
MessageDigest md = null;
try {
  md = MessageDigest.getInstance(algorithm);
} catch (NoSuchAlgorithmException e) {
  return null;
}

md.reset();
md.update(org.getBytes());
byte[] hash = md.digest();

// ハッシュを16進数文字列に変換
StringBuffer sb = new StringBuffer();
int cnt = hash.length;
for (int i = 0; i < cnt; i++) {
  sb.append(Integer.toHexString((hash[i] >> 4) & 0x0F));
  sb.append(Integer.toHexString(hash[i] & 0x0F));
}
return sb.toString();
}