C#读取文件MD5值的实现代码_C#教程-查字典教程网
C#读取文件MD5值的实现代码
C#读取文件MD5值的实现代码
发布时间:2016-12-28 来源:查字典编辑
摘要:本文介绍一个C#函数,可以实现计算文件的MD5值,可以用于文件传输后进行有效性校验。我们知道可以通过将一个字符串进行散列(Hash)运算得到...

本文介绍一个C#函数,可以实现计算文件的MD5值,可以用于文件传输后进行有效性校验。

我们知道可以通过将一个字符串进行散列(Hash)运算得到一个32位字符串,将其作为密码来保存是最常见的MD5应用。不知道大家有没有注意到,在网上一些下载文件的地方,旁边注明了MD5校验值,也是一个32位十六制字符串。这个字符串怎么用呢?这就是文件的MD5加密。

当我们将一个文件从网上下载之后 ,可以计算一下文件的MD5值,然后和网上公布的MD5值进行对比。结果一致,表示文件没有问题,如果结果不一致,有两种可能,一是文件损坏了,无法使用;还有一种情况,那就是文件被人替换了。在下载exe文件时尤其应该注意,如果下载了一个被人替换过后的文件,那是相当危险的事,可能这个文件就被人植入了木马。

那么应该怎么来计算文件的MD5值呢?洪哥给出了一段C#的源代码。有兴趣的朋友参考参考。注意,下面这段代码要包含System.IO命名空间。

复制代码 代码如下:

/// <summary>

/// 计算文件的MD5校验

/// </summary>

/// <param name="fileName"></param>

/// <returns></returns>

public static string GetMD5HashFromFile(string fileName)

{

try

{

FileStream file = new FileStream(fileName, FileMode.Open);

System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();

byte[] retVal = md5.ComputeHash(file);

file.Close();

StringBuilder sb = new StringBuilder();

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

{

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

}

return sb.ToString();

}

catch (Exception ex)

{

throw new Exception("GetMD5HashFromFile() fail,error:" + ex.Message);

}

}

大家可以看到,上面C#代码主要创建了System.Security.Cryptography.MD5类,使用了它的ComputeHash方法。然后将字节数组转换成16进制字符串返回。

大家可以通过上面的主要函数,自己用C#写一个计算文件MD值的小程序了。

关于C#计算文件MD5值的代码,本文就介绍这么多,希望对您有所帮助,谢谢!

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新C#教程学习
    热门C#教程学习
    编程开发子分类