Los objetos que se derivan de HashAlgorithm como MD5CryptoServiceProvider tienen un método Dispose(), pero es privado. En cambio, tiene un método Clear() que "Libera todos los recursos" que usa..NET: deshacerse de un objeto HashAlgorithm
WTF?
¿Es así como desechar correctamente un HashAlgorithm?
var hasher = new MD5CryptoServiceProvider();
byte[] hashCode = hasher.ComputeHash(data);
hasher.Clear();
¿Alguien me quiere explicar este? :)
Yo recomiendo usar otro algoritmo hash también si puedes, ya que muchos consideran la MD5 hash inseguro en ciertas aplicaciones. Una buena alternativa sería la familia SHA, como SHA 256. También están disponibles para su uso en .NET. – Skurmedel
Buena llamada. Recuerdo que leer MD5 había demostrado ser vulnerable hace unos años. Geeze, esto de la Wikipedia: "El 18 de marzo de 2006, Klima publicó un algoritmo [10] que puede encontrar una colisión dentro de un minuto en una sola computadora portátil, utilizando un método que llama tunelización". – core