下载软件后使用c#获取文件的md5码示例

时间:2022-02-08 21:39:58 

很多朋友在下载文件的时候,经常会发现网站提供了MD5校验码,其实这个MD5码的作用就是当你下载文件好了之后,拿你下载好的文件的MD5校验码,跟下载网站提供的进行比较,如果完全一致,说明你下载中文件没问题,如果校验码不一致,说明下载过程中你的文件出错了,或者是你的文件下载出错了,反正就是跟原始文件不一致。而且只要是文件不一样,MD5码肯定不一样,这个是不会重复的,那么到底如何获取文件的MD5码呢?下面就使用C#代码进行讲解。


//-----------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Security;
using System.Security.Cryptography;
using System.IO;
namespace MD5FileForm
{
    public partial class MD5Form : Form
    {
        public MD5Form()
        {
            InitializeComponent();
        }
        private void btnGetMD5_Click(object sender, EventArgs e)
        {
            MD5 md5 = MD5.Create();
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.ShowDialog();
            FileStream fs = new FileStream(ofd.FileName, FileMode.Open);
            byte[] bs = md5.ComputeHash(fs);
            //获取到MD5码
            string md5Str = BitConverter.ToString(bs).Replace("-","");
            MessageBox.Show(string.Format("[{0}]的MD5码为:\n{1}",ofd.FileName,md5Str));
        }
    }
}

第二个使用示例


using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;

namespace Test
{
    public class MD5Code
    {
        /// <summary>
        /// 获取文件的MD5码
        /// </summary>
        /// <param name="fileName">传入的文件名(含路径及后缀名)</param>
        /// <returns></returns>
        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
0
投稿

猜你喜欢

  • java动态绑定和静态绑定用法实例详解

    2022-04-17 19:55:20
  • 浅谈java项目与javaweb项目导入jar包的区别

    2023-11-11 11:06:19
  • VMware虚拟机下hadoop1.x的安装方法

    2023-07-27 08:01:40
  • Java SpringSecurity+JWT实现登录认证

    2022-12-13 16:44:18
  • Java分页工具类及其使用(示例分享)

    2021-12-13 10:25:12
  • springboot vue组件开发实现接口断言功能

    2023-11-12 10:26:53
  • 详解Java8如何使用Lambda表达式进行比较

    2023-12-09 19:27:16
  • java String的深入理解

    2022-10-30 23:50:37
  • Java中实现多线程关键词整理(总结)

    2023-09-08 16:08:49
  • mybatis的if判断integer问题

    2022-12-23 20:15:41
  • java中类与对象的使用详情

    2023-09-27 17:10:43
  • java时间戳转日期格式的实现代码

    2023-08-07 21:44:31
  • Unity3D Shader实现贴图切换效果

    2021-07-10 00:31:20
  • 在IntelliJ IDEA中多线程并发代码的调试方法详解

    2022-01-09 03:05:45
  • slf4j与jul、log4j1、log4j2、logback的集成原理

    2023-01-31 18:01:47
  • Java发送报文与接收报文的实例代码

    2023-07-09 04:44:01
  • 深入了解Hadoop如何实现序列化

    2023-10-13 10:33:43
  • Java 线程对比(Thread,Runnable,Callable)实例详解

    2022-10-20 21:34:08
  • C#4.0新特性之协变与逆变实例分析

    2022-02-18 00:17:28
  • springboot+jersey+tomcat实现跨域方式上传文件到服务器的方式

    2023-08-16 10:26:45
  • asp之家 软件编程 m.aspxhome.com