You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core MVC中MD5哈希计算结果与在线生成器不匹配

问题根因

你的MD5哈希计算逻辑本身没有错误,结果不一致的核心原因是哈希二进制结果的输出编码格式不匹配:

  • 代码中使用Convert.ToBase64String()方法,将MD5计算得到的16字节二进制哈希值转换为Base64编码字符串,输出结果为eBVpbsvxyW5olLd5RW0zDg==
  • 主流在线MD5生成器默认输出的是16字节哈希值转换得到的32位小写十六进制字符串,对应输入"asd"的结果就是7815696ecbf1c96e6894b779456d330e

两种格式对应的底层二进制哈希值完全一致,只是呈现形式不同,不存在加盐或者计算逻辑错误的问题。

修正方案

如果需要和在线工具输出格式对齐,把返回值从Base64编码改为十六进制字符串即可,修正后的代码如下:

using System.Text;

private static string GenerateHash(string value)
{
    var data = System.Text.Encoding.UTF8.GetBytes(value);
    data = System.Security.Cryptography.MD5.Create().ComputeHash(data);
    
    StringBuilder hashBuilder = new StringBuilder();
    foreach (byte b in data)
    {
        // x2表示输出小写2位十六进制,需要大写的话改为X2即可
        hashBuilder.Append(b.ToString("x2"));
    }
    return hashBuilder.ToString();
}

调用该方法传入"asd"时,输出结果为7815696ecbf1c96e6894b779456d330e,和在线工具结果完全一致。

内容的提问来源于stack exchange,提问作者kajahun123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 00:54:21