HashAlgorithm.ComputeHash()有状态吗?

sha*_*oth 7 .net c# hash

我需要独立计算多个数据块的哈希值.像这样的东西:

using( HashAlgorithm hasher = new ActualHashAlgorithm() ) {
    for( int i = 0; i = numberOfBlocks; i++ ) {
        byte[] block = getBlock( i );
        byte[] hash = hasher.ComputeHash( block );
        // use hash
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以HashAlgorithm在块之间重用相同的对象吗?将HashAlgorithm在调用之间重置状态ComputeHash()还是我需要处理HashAlgorithm对象并为每个新数据块创建新对象?