複数のデータブロックのハッシュを別々に計算する必要があります。このような何か:HashAlgorithm.ComputeHash()はステートフルですか?
using(HashAlgorithm hasher = new ActualHashAlgorithm()) {
for(int i = 0; i = numberOfBlocks; i++) {
byte[] block = getBlock(i);
byte[] hash = hasher.ComputeHash(block);
// use hash
}
}
は、私がブロック間で同じHashAlgorithm
オブジェクトを再利用することはできますか? HashAlgorithm
ComputeHash()
の呼び出しの間に状態をリセットするか、またはHashAlgorithm
オブジェクトを破棄して、新しいデータブロックごとに新しいオブジェクトを作成する必要がありますか? ComputeHash
を使用して
私は 'Object.GetHashCodeを()を使用して'永続的なハッシュを作成するために使用してはならないことをあなたに同意。しかし、 'SHA256'のような' System.Security.Cryptography'名前空間でうまく文書化されたハッシュアルゴリズムを利用しても、あなたが警告する問題は発生しません。 –