•MD5算法是一种散列(hash)算法(计算摘要,指纹算法),不是一种加密算法(易错)。任何长度的任意内容都可以用MD5计算出散列值。介绍工具:CalcMD5.zip。
•MD5算法不可逆,也就是只能得到内容对应的MD5值,无法由MD5值反推内容
•Password字段保存用户输入密码的MD5值,这样系统管理员、黑客也不知道用户的密码是什么,也就避免了用户的其他系统密码被利用的问题(很多人不同的系统密码一样)。这就是为什么很多网站只有密码重置,没有找回原密码功能了。
•判断密码正确性的方法:计算用户输入的密码的MD5值,与数据库存储的MD5值进行比较,如果相等则认为密码正确。
•计算文件的MD5值来检验文件没有被篡改过。http://hi.baidu.com/9422e/blog/item/b6a7cb870d91513466096e65.html
•MD5算法理论上是不可逆的,因此攻击的唯一办法就是碰撞。两个不同的内容生成相同的MD5值,这就叫碰撞。MD5算法的碰撞概率非常小。找到一个内容虽然不同但是产生同样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();
}
浙公网安备 33010602011771号