当前位置:  编程技术>.net/c#/asp.net

C#读取文件MD5值的实现代码

    来源: 互联网  发布时间:2014-11-01

    本文导语:  本文介绍一个C#函数,可以实现计算文件的MD5值,可以用于文件传输后进行有效性校验。 我们知道可以通过将一个字符串进行散列(Hash)运算得到一个32位字符串,将其作为密码来保存是最常见的MD5应用。不知道大家有没有注...

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

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

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

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

代码如下:

///
/// 计算文件的MD5校验
///
///
///
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#逐行读取txt文件的方法
  • C# 读取配置文件(指定路径)的方法
  • C# 正则表达式读取Discuz帖子中附件的代码举例
  • c#读取文本的简单例子
  • C# 读取指定路径配置文件的方法
  • c#简单读取文本的实例方法
  • C# 创建文本文件写入读取实现代码
  • C#读取RSS的小例子
  • c#读取图像保存到数据库(数据库保存图片)实例
  • 解决C# X64应用程序中读取WParam溢出的问题
  • c#多线程读取注册表 c#多线程的小例子
  • c#读取图像保存到数据库中(数据库保存图片)
  • c# 二进制方式读取文本文件的实现代码
  • C#读取EXCEL文件内容写入数据库的代码
  • C#操作图片读取和存储SQLserver实现代码
  • c#读取excel内容内容示例分享
  • C#反射技术(读取和设置类的属性)的例子
  • c# 以二进制读取文本文件
  • C#利用Openxml读取Excel数据实例
  • c# 读取XML文件的简单代码
  • 使用libpcap读取tcpdump抓取的文件并解析c代码实例
  • asp.net读取本地与全局资料文件的代码
  • 谁知道linux/unix下利用Schema读取校验xml的开源代码,给一个链接,谢谢!
  • 求在Linux(Ubuntu)下的C截屏代码(读取/dev/fb0)!!
  • 求Delphi下读取usb口的程序及代码?提供者100分相送
  • PHP读取文件内容后清空文件示例代码
  • linux下用什么办法连接oracle数据库并且读取数据呢?(用c++代码实现时)
  • php读取与下载csv文件的示例代码
  • asp.net读取txt文件内容的代码
  • 按行读取文件的代码(php、c实现)
  • PHP按行读取、处理较大CSV文件的代码实例
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ I/O 成员 getline():读取一行字符
  • read函数读取文件时如何一行一行的读取,请指教!
  • C++ I/O 成员 tellg():使用输入流读取流指针
  • linux 下使用 FREETDS 访问数据库 image 字段的问题, 仅能读取 64K ,超出部分读取不到?
  • C++ I/O 成员 ignore():读取字符并忽略指定字符
  • java中读取.txt和读取.ini文件的方式和命令是否一样
  • C++ I/O 成员 read():读取字条符
  • 上传文件时,如何在读取文件内容之前中断读取,并返回客户端错误信息?
  • C++ I/O 成员 gcount():返回读取的最后一次输入的字符数
  • 光驱中有一张光盘,成功读取,现在想换另一张光盘并读取,该如何做
  • C++ I/O 成员 get():读取字符
  • 请问在Java程序中能否直接读取ini文件,如何读取?
  • C++ I/O 成员 tellp():使用输出流读取流指针
  • 高手帮忙:如何用java读取数据(从ftp服务器上一个文本文件)但不采用get的方式直接读取,打印数据内容(web方式)
  • python读取浮点数和读取文本文件示例
  • 读取spring配置文件的方法(spring读取资源文件)
  • 串口读取数据的问题
  • 能否读取一个二进制文件的大小
  • c语言读取csv文件和c++读取csv文件示例分享
  • linux下的mib读取问题?大虾帮解答下
  • 请问readdir读取顺序是什么


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3