新建账户时,用户输入密码,如“123456”,系统用MD5函数将其变成一个不可逆的一个MD5字符串存在数据库。当用户登录时,输入密码“123456”,系统将其转换成MD5字符串与数据库中的MD5值进行比较。这是有些找回密码时,“客服”返回一个新的密码给你,因为“客服”也不知道你的明文密码是多少。
但对于简单字符串的MD5值,有很多都被记录起来,所以简单密码生成的MD5值,别人在数据库中遍历一下,就能得出对应的密码。所以使用“加盐”技术,即,你输入密码“123456”,系统自动追加为“123456%&2013”,再转换为MD5值存到数据库。这里,%&2013就是“盐”…
//MD5转换函数
publicstaticstringGetMD5(stringsDataIn)
{
MD5CryptoServiceProvidermd5=newMD5CryptoServiceProvider();
byte[]bytValue,bytHash;
bytValue=System.Text.Encoding.UTF8.GetBytes(sDataIn);
bytHash=md5.ComputeHash(bytValue);
md5.Clear();
stringsTemp="";
for(inti=0;i<bytHash.Length;i++)
{
sTemp+=bytHash[i].ToString("X").PadLeft(2,'0');
}
returnsTemp.ToLower();
}