Tengo un método utilizado para generar un hash:de ajuste de un hash creado en C# con SQL
public static string GetMD5Hash(string input)
{
System.Security.Cryptography.MD5CryptoServiceProvider x = new System.Security.Cryptography.MD5CryptoServiceProvider();
byte[] bs = System.Text.Encoding.UTF8.GetBytes(input);
bs = x.ComputeHash(bs);
System.Text.StringBuilder s = new System.Text.StringBuilder();
foreach (byte b in bs)
{
s.Append(b.ToString("x2").ToLower());
}
return s.ToString();
}
luego guardar ese resumen en un (255) la columna varchar. Sabiendo cuál era la cadena de entrada original, ¿sería posible llegar al mismo valor hash almacenado en la columna varchar (255), usando sql (2005)?
He intentado como loco usando diferentes tipos de datos, conversiones y la función hashbytes(), pero no he podido acercarme.
Ejemplo de mi intento fallido :(
select convert(varchar, hashbytes('MD5', convert(varbinary(200), '<censored>',0)))
No utilice MD5; es inseguro – SLaks
¿por qué 'varchar (255)'? 'MD5CryptoServiceProvider' devuelve una matriz de 16 bytes de' ComputeHash() 'por lo que debe usar char (32) (si lo guarda como hexadecimal) – BrokenGlass
tal vez es debido a ToLower()? – Greenisha