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,所以我最终感到困惑。 –