我如何解密文本在c#
本文关键字:文本 解密 何解密 | 更新日期: 2023-09-27 18:13:07
我使用下面的函数加密密码并将其存储到我的数据库中。现在我需要将其解密,并将其与登录用户进行比较。请帮帮我。
public static string encrypt_string_using_MD5(string s)
{
byte[] byte_array = System.Text.Encoding.Default.GetBytes(s);
System.Security.Cryptography.HashAlgorithm alg =
System.Security.Cryptography.HashAlgorithm.Create("MD5");
byte[] byte_array2 = alg.ComputeHash(byte_array);
System.Text.StringBuilder sb
= new System.Text.StringBuilder(byte_array2.Length);
foreach(byte b in byte_array2)
{
sb.AppendFormat("{0:X2}", b);
}
return sb.ToString();
}
无法解密哈希。哈希就像你的原始内容的签名。你能做的就是将这个哈希存储在数据库中。当用户输入密码时。计算用户输入值的哈希值并将其与存储的哈希值进行比较如果匹配则验证成功
无法解密,因为它没有加密。
您创建的是文本的散列,而不是加密版本。
哈希就像数据的指纹。例如,这可以用于在数据库中安全地存储密码。当有人想再次登录时,您将再次计算散列,并根据数据库中的散列检查新散列是否匹配。如果是,那么密码是相同的,用户可以登录。
一个好的解释可以在http://www.securityinnovationeurope.com/blog/whats-the-difference-between-hashing-and-encrypting
因此您使用MD5,它是不可逆的。你为什么要以明文形式发送密码?
无论哪种方式,当比较值(一个是普通值,一个是散列值)时,对普通值进行散列并比较。