JavaでMd5チェックサムを計算する次の関数を作成しました。
class Utils {
public static String md5Hash(String input) {
String result = "";
try {
System.out.println("Input=" + input);
final MessageDigest md = MessageDigest.getInstance("MD5");
md.reset();
md.update(input.getBytes());
result = md.digest().toString();
} catch (Exception ee) {
System.err.println("Error computing MD5 Hash");
}
return result;
}
};
複数回呼び出すUtils.md5Hash("abcde")
と、異なる結果が得られます。私の理解では、md5 は文字列に対して確定的で一意のチェックサムを返します。それは間違っていますか?それ以外の場合は、実装のバグをお知らせください。ありがとう