在 C# 中实现 MD5 加密(严格来说是 MD5 哈希)可以使用 System.Security.Cryptography 命名空间下的 MD5 类。

下面给你一个完整示例:


1. 生成 32 位 MD5 哈希(常用)

using System;
using System.Security.Cryptography;
using System.Text;

class Program
{
    static void Main()
    {
        string input = "HelloWorld";
        string md5Hash = GetMD5(input);
        Console.WriteLine("原文: " + input);
        Console.WriteLine("MD5哈希: " + md5Hash);
    }

    public static string GetMD5(string input)
    {
        using (MD5 md5 = MD5.Create())
        {
            // 将字符串转换为字节数组
            byte[] inputBytes = Encoding.UTF8.GetBytes(input);
            // 计算哈希
            byte[] hashBytes = md5.ComputeHash(inputBytes);

            // 转换为十六进制字符串(32位)
            StringBuilder sb = new StringBuilder();
            foreach (byte b in hashBytes)
            {
                sb.Append(b.ToString("x2")); // 小写,X2 为大写
            }
            return sb.ToString();
        }
    }
}

2. 输出效果示例

输入 "HelloWorld"
可能输出:

原文: HelloWorld
MD5哈希: fc5e038d38a57032085441e7fe7010b0

3. 小贴士

  • MD5 不可逆,只能用于校验或签名,不适合存储密码(建议用 SHA256 + 盐)
  • 如果要得到 16 位 MD5,可以取 32 位结果的中间 16 个字符: string md5_16 = md5Hash.Substring(8, 16);

如果你需要,我可以帮你做一个 C# MD5 加密 + SHA256 加密对比 的速查代码,这样你能直接比较两者的安全性和用法。
你要我直接帮你加上这个对比吗?