C# 如何获取文件的MD5值

C# 如何获取文件的MD5值,任意两个文件不会有相同的MD5散列值,我们可以获取、比较文件MD5值,用来判断文件的是否一致或被篡改。

C# 如何获取文件的MD5值

C# 获取文件的MD5值代码如下:

using System.IO;

using System.Security.Cryptography;

public string GetMD5Hash(string path)

{

using (FileStream fs = new FileStream(path, FileMode.Open))

{

StringBuilder sb = new StringBuilder();

MD5 md5 = new MD5CryptoServiceProvider();

byte[] array = md5.ComputeHash(fs);

fs.Close();

for (int i = 0; i < array.Length; i++)

{

sb.Append(array[i].ToString("x2"));

}

return sb.ToString();

}

}

上面代码中的 ToString("x2"))是字符串格式控制符,输出十六进制数据,详见:C# 16进制表示法

什么是MD5?

MD5是message-digest algorithm 5(信息-摘要算法)的缩写,被广泛用于加密和解密技术上,它可以说是文件的“数字指纹”。任何一个文件,无论是可执行程序、图像文件、临时文件或者其他任何类型的文件,也不管它体积多大,都有且只有一个独一无二的MD5信息值,并且如果这个文件被修改过,它的MD5值也将随之改变。因此,我们可以通过对比同一文件的MD5值,来校验这个文件是否被“篡改”过

MD5计算将整个文件或者字符串,通过其不可逆的字符串变换计算,产生文件或字符串的MD5散列值。任意两个文件、字符串不会有相同的散列值(即“很大可能”是不一样的,理论上要创造出两个散列值相同的字符串是很困难的)。

因此MD5常用于校验字符串或者文件,以防止文件、字符串被“篡改”。因为如果文件、字符串的MD5散列值不一样,说明文件内容也是不一样的,即经过修改的,如果发现下载的文件和给的MD5值不一样,需要慎重使用。

MD5文件校验用途非常多,例如:游戏补丁包的校验,病毒文件确认,APP提审校验等;如果要确认某一个文件的完整性和正确性,都会使用MD5进行校验。

批量修改文件名精灵 2024年最新版
批量修改文件名称、文件夹名称

免费使用 功能无限制

方便快捷,支持正则表达式、无需安装功能齐全、支持定制无广告、无插件,放心使用。

免费下载 百度网盘
本站中所有的计算器的计算结果仅供参考,本站对此结果的准确性不承担任何责任,实际数额以银行/保险公司/国家相关机构确认的结果为准。
在线客服QQ:543690914,备案号: 苏ICP备15037649号-33。东海县白塔埠镇佳诚电脑经营部版权所有。