Como calcular um Hash MD5 a partir de uma string
Esta é uma prática comum para armazenar senhas em um banco de dados. MD5 (definido no RFC 1321) é uma algorítimo hash comum, e usá-lo no C# é muito simples.
Aqui encontramos uma implementação de um método que converte uma String para um MD5 Hash, contendo uma string de 32 caracteres haxadecimais.
{
// Primeiro passo, calcular o MD5 hash a partir da string
MD5 md5 = System.Security.Cryptography.MD5.Create();
byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(input);
byte[] hash = md5.ComputeHash(inputBytes);
// Segundo passo, converter o array de bytes em uma string haxadecimal
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hash.Length; i++) {
sb.Append(hash[i].ToString("X2"));
}
return sb.ToString();
}
Exemplo da chamada da função:
…a string de retorno se parece com isso:
Para transformar a string hexadecimal em caixa baixa(letras minúsculas), substitua a linha dentro do FOR por esta linha:
A diferença é o parâmetro do método ToString.
Um comentário:
No lugar do for que você usou pra converter em hexa, coloque o seguinte código:
return BitConverter.ToString(encodedBytes);
elel vai transformar cada byte em hexa e inserir um '-' entre eles.
Postar um comentário