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

Posted Mculover666

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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#上位机开发(十五)—— 计算字符串哈希值和文件哈希值的主要内容,如果未能解决你的问题,请参考以下文章

C#上位机开发—— 修改窗口图标和exe文件图标

C#上位机开发——SerialAssistant功能优化(串口自动扫描功能接收数据保存功能加载发送文件发送历史记录打开浏览器功能定时发送功能)

c#上位机开发

用C#语言开发上位机(来控制下位机比如了解下位机测量的温度湿度压力并控制下位机)要用到啥知识?

C#上位机开发—— 美化界面(给按钮添加背景)

C#上位机开发——SerialAssistant界面升级(WinForm界面布局进阶)