Ho bisogno di calcolare gli hash di più blocchi di dati in modo indipendente. Qualcosa di simile a questo:HashAlgorithm.ComputeHash() stateful?
using(HashAlgorithm hasher = new ActualHashAlgorithm()) {
for(int i = 0; i = numberOfBlocks; i++) {
byte[] block = getBlock(i);
byte[] hash = hasher.ComputeHash(block);
// use hash
}
}
Posso riutilizzare lo stesso oggetto HashAlgorithm
tra i blocchi? Sarà lo stato di ripristino HashAlgorithm
tra le chiamate a ComputeHash()
o è necessario disporre dell'oggetto HashAlgorithm
e crearne uno nuovo per ogni nuovo blocco di dati?
Sono d'accordo con te che utilizzando 'object.GetHashCode()' non deve essere usato per creare gli hash persistenti. Tuttavia, l'utilizzo degli algoritmi di hash ben documentati nello spazio dei nomi 'System.Security.Cryptography' come' SHA256' non porterà ai problemi che si avvertono. –