Stack Overflow em Português Asked by Eric Jhon on November 30, 2020
Preciso salvar senhas de acesso dos usuários de um sistema no banco de dados e pensei em usar os códigos abaixo para criptografar as senhas usando as próprias senhas como chave. A verificação da senha seria feita criptografando a senha inserida no form de login e comparando o resultado com a senha criptografada salva no banco de dados.
Criptografar:
public static string Criptografar(string entrada, string chave)
{
TripleDESCryptoServiceProvider tripledescryptoserviceprovider = new TripleDESCryptoServiceProvider();
MD5CryptoServiceProvider md5cryptoserviceprovider = new MD5CryptoServiceProvider();
try
{
if ((entrada.Trim() != ""))
{
// Aqui vc inclui uma chave qualquer para servir de base para cifrar, que deve ser a mesma no m�todo Decodificar
tripledescryptoserviceprovider.Key = md5cryptoserviceprovider.ComputeHash(Encoding.Default.GetBytes(chave));
tripledescryptoserviceprovider.Mode = CipherMode.ECB;
ICryptoTransform desdencrypt = tripledescryptoserviceprovider.CreateEncryptor();
byte[] buff = Encoding.Default.GetBytes(entrada);
return Convert.ToBase64String(desdencrypt.TransformFinalBlock(buff, 0, buff.Length));
}
else
return "";
}
catch (Exception ex)
{
// MsgBox(exception.Message, MsgBoxStyle.Exclamation)
throw new Exception(ex.Message, ex);
}
finally
{
tripledescryptoserviceprovider = null/* TODO Change to default(_) if this is not a reference type */;
md5cryptoserviceprovider = null/* TODO Change to default(_) if this is not a reference type */;
}
}
Descriptografar:
public static string Descriptografar(string entrada, string chave)
{
TripleDESCryptoServiceProvider tripledescryptoserviceprovider = new TripleDESCryptoServiceProvider();
MD5CryptoServiceProvider md5cryptoserviceprovider = new MD5CryptoServiceProvider();
try
{
if ((entrada.Trim() != ""))
{
tripledescryptoserviceprovider.Key = md5cryptoserviceprovider.ComputeHash(Encoding.Default.GetBytes(chave));
tripledescryptoserviceprovider.Mode = CipherMode.ECB;
ICryptoTransform desdencrypt = tripledescryptoserviceprovider.CreateDecryptor();
byte[] buff = Convert.FromBase64String(entrada);
return Encoding.Default.GetString(desdencrypt.TransformFinalBlock(buff, 0, buff.Length));
}
else
return "";
}
catch (Exception ex)
{
// MsgBox(exception.Message, MsgBoxStyle.Exclamation)
throw new Exception(ex.Message, ex);
}
finally
{
tripledescryptoserviceprovider = null/* TODO Change to default(_) if this is not a reference type */;
md5cryptoserviceprovider = null/* TODO Change to default(_) if this is not a reference type */;
}
}
Gostaria de saber o que acham desse método e se tiverem melhores sugestões, agradeço.
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP