Criptografar Senhas utilizando MD5 Hash em C# (CSharp)
Postado em : 17/11/2015
Classe para criptografar senhas utilizando método MD5 Hash
do C#
Crie uma arquivo com o nome Md5Hash.cs
em seu projeto e cole o código abaixo
/* * Criptografia de senha em MD5 Hash. * * Visite nossa página http://www.codigoexpresso.com.br * * public static string CalculaHash(string Senha) * criptografa uma senha em MD5 Hash * */ using System; public static class MD5Hash { /// <summary> /// Calcula MD% Hash de uma determinada string passada como parametro /// </summary> /// <param name="Senha">String contendo a senha que deve ser criptografada para MD5 Hash</param> /// <returns>string com 32 caracteres com a senha criptografada</returns> public static string CalculaHash(string Senha) { try { System.Security.Cryptography.MD5 md5 = System.Security.Cryptography.MD5.Create(); byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(Senha); byte[] hash = md5.ComputeHash(inputBytes); System.Text.StringBuilder sb = new System.Text.StringBuilder(); for (int i = 0; i < hash.Length; i++) { sb.Append(hash[i].ToString("X2")); } return sb.ToString(); // Retorna senha criptografada } catch (Exception) { return null; // Caso encontre erro retorna nulo } } }
Para fazer a chamada a função que criptografa uma senha utilize o método
string senha = "123456"; // Calcula a senha com base na string senha e armazena na string senhaCriptografada // Neste caso senha = '123456' retorna string 'E10ADC3949BA59ABBE56E057F20F883E' string senhaCriptografada = MD5Hash.CalculaHash(senha); ]
Observações
Depois de criptografada é impossível chegar ao valor original novamente, sendo assim, salvamos a senha criptografada em nosso banco de dados e para confirmar se o usuário digitou a senha corretamente devemos criptografar a senha informada para então comparar com a senha armazenada.
Deve-se criar método para que quando o usuário esquecer sua senha possamos gravar uma senha genérica exemplo
123456
e garantir que o usuário troque sua senha assim que fizer um novo acesso.
Caso tenha alguma dúvida deixe seu comentário abaixo.