Estoy tratando de generar hashes MD5 equivalentes tanto en JavaScript como en .Net. Al no haberlo hecho tampoco, decidí utilizar contra un cálculo de terceros: web site para la palabra "contraseña". Voy a añadir en sales más tarde, pero por el momento, no puedo obtener la versión .NET para que coincida con el hash del sitio web:¿Por qué mi hash MD5 calculado en .net no es equivalente al hash calculado en un sitio web?
5f4dcc3b5aa765d61d8327deb882cf99
que supongo que es un problema de codificación, pero me he probado aproximadamente 8 variaciones diferentes de métodos para calcular un hash MD5 en .Net, y ninguno de ellos coincide con lo que he obtenido en JavaScript (o desde el sitio web). Este MSDN example es uno de los métodos que he tratado, lo que resulta en este hash que he recibido comúnmente:
7c6a180b36896a0a8c02787eeafb0e4c
Edición: Lamentablemente, accidentalmente he estado proporcionando diferentes cadenas de origen para las dos implementaciones diferentes. EBSAK. : -/Todavía estará interesado en escuchar su respuesta al seguimiento.
Pregunta de bonificación: ¿qué codificación/formato sería mejor para almacenar valores hash en una base de datos?
¿Qué estás usando el hash Javascript para? La razón por la que pregunto es que, si se trata de seguridad, solo se debe generar en el servidor. –
Para dar un paso atrás en esta discusión un poco, creo que [la publicación de Thomas Ptacek] (http://chargen.matasano.com/chargen/2007/9/7/enough-with-the-rainbow-tables-what-you -necesitar-saber-sobre-seguro-contraseña-esquemas.html) (en respuesta a una [publicación de Jeff Atwood] (http://blog.codinghorror.com/rainbow-hash-cracking/) sobre un tema similar) explica mejor por qué no debe usar algo como MD5 para el hash de contraseñas. Lectura recomendada. –