哈希函数将任意长度的二进制字符串映射到固定长度的小二进制字符串。
该MD5算法是一种广泛使用的哈希函数,可产生128位哈希值(16个字节,32个十六进制字符)。
该类的ComputeHash方法以System.Security.Cryptography.MD516个字节的数组形式返回哈希值。
示例
using System;
using System.Security.Cryptography;
using System.Text;
internal class Program
{
private static void Main()
{
var source = "你好,世界!";
// 创建MD5哈希算法的默认实现的实例。
using (var md5Hash = MD5.Create())
{
// 源字符串的字节数组表示
var sourceBytes = Encoding.UTF8.GetBytes(source);
// 生成输入数据的哈希值(字节数组)
var hashBytes = md5Hash.ComputeHash(sourceBytes);
// 将哈希字节数组转换为字符串
var hash = BitConverter.ToString(hashBytes).Replace("-", string.Empty);
// 输出MD5哈希
Console.WriteLine("的MD5哈希 " + source + " is: " + hash);
}
}
}输出: Hello World的MD5哈希!是:ED076287532E86365E841E92BFC50D8C
安全问题:
像大多数哈希函数一样,MD5既不是加密也不是编码。它可以通过蛮力攻击来逆转,并且遭受针对碰撞和原像攻击的广泛漏洞。