.net - generar - javascript hash string
Hash MD5 De Cadena (3)
Necesito obtener hash MD5 de la cadena.
Obtener un error MD5 es nulo.
Estoy tratando de obtener un hash MD5 de 32 caracteres de una cadena.
using (System.Security.Cryptography.MD5 md5 =
System.Security.Cryptography.MD5.Create("TextToHash"))
{
byte[] retVal = md5.Hash;
StringBuilder sb = new StringBuilder();
for (int i = 0; i < retVal.Length; i++)
{
sb.Append(retVal[i].ToString("x2"));
}
}
Necesito obtener hash MD5 de la cadena.
Entonces primero necesitas convertir tu cadena a datos binarios de alguna forma. La forma en que lo hagas dependerá de tus requisitos, pero probablemente será Encoding.GetBytes
para algunas codificaciones ... debes averiguar cuál es la codificación. ¿Este hash necesita coincidir con el hash creado en otro lugar, por ejemplo?
Obtener un error MD5 es nulo.
Eso es porque estás usando MD5.Create
incorrectamente. El argumento es un nombre de algoritmo . Es casi seguro que debes usar la sobrecarga sin parámetros en su lugar.
Sospecho que quieres algo como:
byte[] hash;
using (MD5 md5 = MD5.Create())
{
hash = md5.ComputeHash(Encoding.UTF8.GetBytes(text));
}
// Now convert the binary hash into text if you must...
La cadena pasada a MD5.Create no es el "texto a hash", sino el algoritmo a utilizar. Sospecho que quieres:
using (System.Security.Cryptography.MD5 md5 =
System.Security.Cryptography.MD5.Create())
{
byte[] retVal = md5.ComputeHash(Encoding.Unicode.GetBytes("TextToHash"));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < retVal.Length; i++)
{
sb.Append(retVal[i].ToString("x2"));
}
}
La razón por la que está obteniendo un retorno null
es el parámetro de string
para el método Create
especiia el algoritmo, no el texto que se está procesando. No hay ningún algoritmo de TextToHash, por lo que se obtiene un null
como resultado.