我需要独立计算多个数据块的哈希值。类似这样:
using( HashAlgorithm hasher = new ActualHashAlgorithm() ) {
for( int i = 0; i = numberOfBlocks; i++ ) {
byte[] block = getBlock( i );
byte[] hash = hasher.ComputeHash( block );
// use hash
}
}
我能否在不同的数据块之间重复使用相同的HashAlgorithm
对象?调用ComputeHash()
后,HashAlgorithm
是否会重置状态,或者我需要处理HashAlgorithm
对象并为每个新数据块创建一个新的对象?
object.GetHashCode()
来创建持久哈希。然而,利用System.Security.Cryptography
命名空间中的众所周知的哈希算法,如SHA256
,不会导致你所警告的问题。 - Brian R. Mullin