Estoy buscando un contenedor C# a una biblioteca nativa MD5 o SHA1 para mejorar el rendimiento del cálculo hash.C# cálculo de hash rápido
Anteriormente cambié SharpZipLib a zlib y obtuve más de 2 aumentos de rendimiento. (De acuerdo, debe tener cuidado de que tenga el zlib.so o el zlib.dll correcto según el sistema operativo y el hardware, pero vale la pena).
¿Valdrá la pena para MD5 o SHA1 o ambos .NET y Mono ya cuentan con una implementación nativa?
(Editado) También: en caso de que tenga que apegarme al MD5CryptoServiceProvider, ¿hay alguna forma de calcular un hash de un archivo mientras lo estoy leyendo? Quiero decir, enviar bytes en fragmentos, pero aún calcular el hash completo?
Tenga en cuenta que MD5 es un algoritmo hash crackeado, y ya no se considera seguro. También se han encontrado colisiones con SHA1, y aunque no son tan severas como MD5, se consideraron roturas significativas. Si necesita un algoritmo de hash seguro, debe optar por las variantes de SHA2 (256/512). – jrista
@pablo, ¿estás seguro de que hashing y no IO access es tu cuello de botella ... –
También puede ser IO, tienes razón, pero después de mi experiencia con zlib, estaba pensando si cambiar la implementación de MD5 aceleraría las cosas. – pablo