5
問題很簡單:何時應該在java類MessageDigest上調用reset()函數?在使用它之前是否需要調用MessageDigest.reset()?
的問題主要來自OWASP reference,其中的代碼示例中,他們這樣做:
MessageDigest digest = MessageDigest.getInstance("SHA-1");
digest.reset();
digest.update(salt);
byte[] input = digest.digest(password.getBytes("UTF-8"));
然後,在一個循環中,他們這樣做:現在
for (int i = 0; i < iterationNb; i++) {
digest.reset();
input = digest.digest(input);
}
,對我來說,看起來好像僅當摘要實例已被調用更新的「污染」時才需要重置。因此,第一個樣品中的那個似乎不是必需的。如果有必要,是否表示由MessageDigest.getInstance返回的實例不是線程安全的?
TY,有道理。在google的參考文獻中看到這麼多,忘了重新讀取類頭和getInstance()doc,所以我最終感到困惑。 –