Java에서 MessageDigest를 사용하여 문자열의 해시 값을 가져 오려고하지만 값이 매번 다릅니다. 프로그램을 두 번 실행하면 다시 완전히 다른 답변을 얻을 수 있습니다.MessageDigest가 같은 문자열에 대해 다른 대답을 반환하는 이유는 무엇입니까?
MessageDigest md = null;
try {
md = MessageDigest.getInstance("SHA-1");
} catch (NoSuchAlgorithmException nsae) {
}
md.update("string".getBytes());
byte[] digest = md.digest();
System.out.println(digest);
md.reset();
md.update("string".getBytes());
byte[] digest2 = md.digest();
System.out.println(digest2);
또한 'MessageDigest # reset()'은'MessageDigest # digest() '로 자동 호출됩니다. [(Javadoc 참조)] (https://docs.oracle.com/javase/7/docs/api/java/security/MessageDigest.html#digest()) – ZX9