MD5算法
MD5算法
概念
MD5:信息摘要算法(Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。
其它的加密算法还有安全散列算法:SHA家族,主要的就是SHA-2(SHA-224、SHA-256、SHA-384、SHA-512)
.NET 实现MD5
/// <summary>
/// 使用MD5加密字符串
/// </summary>
/// <param name="str">需要加密的字符串</param>
/// <returns>32位的小写哈希值</returns>
public static string GetMd5Hash(string str)
{
using MD5 md5Hash = MD5.Create();
byte[] vs = md5Hash.ComputeHash(Encoding.UTF8.GetBytes(str));
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < vs.Length; i++)
{
stringBuilder.Append(vs[i].ToString("x2"));
}
return stringBuilder.ToString();
}
/// <summary>
/// 验证签名
/// </summary>
/// <param name="str">需要加密的字符串</param>
/// <param name="hash">需要验证的hash</param>
/// <returns>验证通过为true,否则为false</returns>
public static bool VerifyMd5Hash(string str, string hash)
{
string hashOfStr = GetMd5Hash(str);
StringComparer comparer = StringComparer.OrdinalIgnoreCase;
if (0 == comparer.Compare(hashOfStr, hash))
{
return true;
}
else
{
return false;
}
}