一、C#计算哈希值方法
1. 引用类库
using System.Security.Cryptography;
2. 计算哈希值
tmpHash = new MD5CryptoServiceProvider().ComputeHash(tmpSource);
二、计算字符串哈希
(1)声明用于保存源数据的字符串变量,以及两个字节数组 (未定义的大小) 保存源字节和生成的哈希值。
string sSourceData;
byte[] tmpSource;
byte[] tmpHash;
(2)将源字符串转换为作为哈希函数输入所需的字节数组。
sSourceData = "MySourceData";
tmpSource = ASCIIEncoding.ASCII.GetBytes(sSourceData);
(3)通过调用 ComputeHash 类的实例来计算源数据的 MD5CryptoServiceProvider MD5 哈希。
tmpHash = new MD5CryptoServiceProvider().ComputeHash(tmpSource);
(4)字节数组 tmpHash 现在保存源数据的计算哈希值 (128 位值=16 字节) 。 将类似这样的值显示或存储为十六进制字符串通常很有用。
Console.WriteLine(ByteArrayToString(tmpHash));
static string ByteArrayToString(byte[] arrInput)
{
int i;
StringBuilder sOutput = new StringBuilder(arrInput.Length);
for (i=0;i < arrInput.Length; i++)
{
sOutput.Append(arrInput[i].ToString("X2"));
}
return sOutput.ToString();
}
三、计算文件哈希
(1)按字节读取所有文件内容
byte[] context = System.IO.File.ReadAllBytes(filename);
(2)对文件内容计算哈希
tmpHash = new MD5CryptoServiceProvider().ComputeHash(context);
四、开源的哈希计算小工具
https://github.com/nl8590687/HashChecker。
|