获取一个文件的MD5值的作用是测定该文件是否是原文件,以保证文件不曾被恶意更改。
比如我压缩了一个test.zip文件,计算了一个MD5值放到了一个md5.txt文件中。然后把test.zip和md5.txt一起放到了共享文件夹,这时候某个坏人把共享文件夹里面的test.zip解压缩之后放了个木马进去,然后重新压缩成test.zip文件,替换了原来的test.zip(这时候test.zip计算出来的MD5值和原来的已经不一样了)。
想想是不是很吓人,但我们有MD5值计算对比的话就不会被坏人坑。我们先把test.zip文件下载到本地,然后计算其MD5值,然后和md5.txt里面的MD5值比较,如果不一样则判定共享文件夹里面的test.zip有问题。
下面是我写的小例子(工程为c#Windows窗体应用程序):

using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
using System.Windows.Forms;namespace GetMd5
{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){System.Windows.Forms.OpenFileDialog dlg = new System.Windows.Forms.OpenFileDialog();dlg.InitialDirectory = "D:\\";dlg.Filter = "压缩文件|*.zip|所有文件|*.*";dlg.RestoreDirectory = false;//若为false,则打开对话框后为上次的目录。若为true,则为初始目录if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK) //选择打开新任务{textBox1.Text = System.IO.Path.GetFullPath(dlg.FileName);//将选中的文件的路径传递给TextBox “FilePath”textBox2.Text = GetMD5HashFromFile(textBox1.Text);}}public string GetMD5HashFromFile(string fileName){try{FileStream file = new FileStream(fileName, System.IO.FileMode.Open);MD5 md5 = new 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#获取文件的MD5值相关推荐

  1. JAVA 获取文件的MD5值大小以及常见的工具类

    1 /** 2 * 获取文件的MD5值大小 3 * 4 * @param file 5 * 文件对象 6 * @return 7 */ 8 public static String getMD5(Fi ...

  2. c++判断文件是否被修改(获取文件的MD5值)

    需求分析 因为项目中需要检测一个文件是否被篡改,我采用了监测文件的MD5值. MD5,简单地来说,就是文件的"指纹".如果原始文件被修改了,那么MD5值也就会跟着发生变化,所以我们 ...

  3. golang 获取文件的MD5值

    golang 获取文件的MD5值 调用下面的函数(输入参数是文件的路径,如/home/user/test.txt),即可获取指定文件的MD5值. func GetFileMD5(pathName st ...

  4. java 获取md5值报错_java获取文件的MD5值

    package com.sichang.util; import java.io.File; import java.io.FileInputStream; import java.math.BigI ...

  5. windows查看并获取文件的md5值

    方法一: 我们先打开电脑,然后将我们需要查询MD5值的文件放到桌面上,这里我们以一个压缩文件为例,如图所示. 然后,我们在该压缩文件那里鼠标右键,然后右键上面会出现一系列的选项. 接着,我们把鼠标移到 ...

  6. Java,如何获取文件的MD5值

    MessageDigest类封装得很不错,简单易用 不多说,直接上代码 import java.io.FileInputStream; import java.security.MessageDige ...

  7. shell 获取字符串/文件的MD5值

    获取字符串的MD5值: 字符串"hello"的MD5: $ echo -n 'hello'|md5sum|cut -d ' ' -f1 得到的MD5值: 5d41402abc4b2 ...

  8. linux获取文件的md5,linux shell 获取文件md5的命令linux操作系统 -电脑资料

    下面我给各位朋友总结一下在linux中利用shell命令来获取文件md5及遍历目录下所有文件的md5的例子,希望此例子对各位同学会有所帮助, 获取文件的MD5值: $ md5sum linuxmint ...

  9. Spring Boot——获取上传文件的MD5值解决方案

    解决方案 方法一: /*** 上传文件* @param file 文件* @return ResponseBean*/@ApiOperation(value = "上传文件",no ...

  10. php怎么读取上传文件的md5,利用PHP怎么获取远程http文件的md5值

    利用PHP怎么获取远程http文件的md5值 发布时间:2021-02-05 18:10:04 来源:亿速云 阅读:61 作者:Leah 本篇文章给大家分享的是有关利用PHP怎么获取远程http文件的 ...

最新文章

  1. 深入浅出Service插件化原理
  2. Android运行时权限
  3. MySQL 实现一个字段赋值给另一个字段
  4. matlab正弦序列频谱,【求助】正弦信号序列fft频谱分析!!!
  5. 只有本地用户才能安装sql_为何只有安装了新风换气机才能打造好的家居环境?听听厂家怎么说...
  6. ArchiMate - 发布【企业架构语言ArchiMate v0.5.pdf】
  7. php对象魔术方法,php学习之类与对象的魔术方法的使用
  8. 德勤发布2021中国成长型AI企业研究报告:迈向巅峰之路
  9. pat甲级什么水平_转让河北工程设计建筑行业(建筑工程)甲级资质
  10. python读取sas数据集_Python 数据处理库 pandas 入门教程基本操作
  11. c1语言实验报告怎么写,c语言程序设计实验报告模板
  12. 不限网站的视频字幕实时翻译工具(视频只要有声音就可以翻译)
  13. java:线程的六种状态
  14. qt 获取用户缩放,Qt-如何创建随窗口缩放并保持纵横比的图像?
  15. Python网络爬虫与信息提取学习
  16. 新1期_012课_内存控制器与SDRAM
  17. 三星搁置OLED面板工厂计划可能投资microLED
  18. HTML制作宣传片,如何制作一部好的宣传片
  19. 【C语言】动态申请空间
  20. 【实战篇】——keras合并多个模型

热门文章

  1. C盘快满了,处理一下pagefile.sys文件和hiberfil.sys文件
  2. PS修改图片尺寸和大小
  3. 2020最新5Sing音乐解析解析接口 简单实用
  4. Java学习4:方法的重载(Overload)详解及实例说明
  5. 工程测量(平面高程控制网)
  6. 起点中文网字体反爬注意事项
  7. Python黑客帝国装逼代码
  8. 混淆电路Garbled Circuit介绍
  9. Python常用库大全
  10. 北京邮电大学计算机学院2020复试,预览北京邮电大学计算机学院2020研究生复试流程...