MD5算法

本文详细介绍了MD5算法的概念及其在.NET平台上的实现方式。MD5是一种常用的密码散列函数,能生成128位散列值,用于确保信息传输的完整性和一致性。文章提供了使用MD5加密字符串及验证签名的具体代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概念

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;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值