0
点赞
收藏
分享

微信扫一扫

C#上位机开发(十五)—— 计算字符串哈希值和文件哈希值


一、C#计算哈希值方法

1. 引用类库

using System.Security.Cryptography;

2. 计算哈希值

//Compute hash based on source data.
tmpHash = new MD5CryptoServiceProvider().ComputeHash(tmpSource);

二、计算字符串哈希

(1)声明用于保存源数据的字符串变量,以及两个字节数组 (未定义的大小) 保存源字节和生成的哈希值。

string sSourceData;
byte[] tmpSource;
byte[] tmpHash;

(2)将源字符串转换为作为哈希函数输入所需的字节数组。

sSourceData = "MySourceData";
//Create a byte array from source data.
tmpSource = ASCIIEncoding.ASCII.GetBytes(sSourceData);

(3)通过调用 ComputeHash 类的实例来计算源数据的 MD5CryptoServiceProvider MD5 哈希。

//Compute hash based on source data.
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)对文件内容计算哈希

//Compute hash based on source data.
tmpHash = new MD5CryptoServiceProvider().ComputeHash(context);

四、开源的哈希计算小工具

​​https://github.com/nl8590687/HashChecker​​。

C#上位机开发(十五)—— 计算字符串哈希值和文件哈希值_sed



举报

相关推荐

0 条评论