在 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 加密对比 的速查代码,这样你能直接比较两者的安全性和用法。
你要我直接帮你加上这个对比吗?
发表回复