Tôi đang cố gắng để có được một giá trị băm cho một chuỗi bằng cách sử dụng MessageDigest trong Java, nhưng giá trị là khác nhau mỗi lần. Khi tôi chạy chương trình hai lần nó sẽ một lần nữa có câu trả lời hoàn toàn khác nhau.Tại sao MessageDigest trả lại các câu trả lời khác nhau cho cùng một chuỗi?
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);
Cũng lưu ý rằng 'MessageDigest # reset()' được tự động gọi với 'MessageDigest # digest()'. [(xem Javadoc)] (https://docs.oracle.com/javase/7/docs/api/java/security/MessageDigest.html#digest()) – ZX9