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;
    }
}
posted @ 2020-08-19 15:01  liujiangbo  阅读(63)  评论(0编辑  收藏  举报