为了保证密码的安全性,出现了一个叫MD5的算法,这是一种不可逆的加密方式。
它的函数是:
public static string GetMD5(string sDataIn)
{
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
byte[] bytValue, bytHash;
bytValue = System.Text.Encoding.UTF8.GetBytes(sDataIn);
bytHash = md5.ComputeHash(bytValue);
md5.Clear();
string sTemp = "";
for (int i = 0; i < bytHash.Length; i++)
{
sTemp += bytHash[i].ToString("X").PadLeft(2, '0');
}
return sTemp.ToLower();
}
使用方法是:
string md = GetMD5("1234");
这里的md就是加密后得到的值。这种算法不能保证它的唯一性,就是一一对应,但是出行相同的加密结果的可能性非常非常低。
在数据库中,就不保存明文密码,直接保存MD5加密后的值,在用户输入密码之后,直接使用MD5加密,将其结果与数据库中的值对比。