c# 如何给文件计算MD5

在项目中,当我们需要把数据文件上传到ftp时,为了保证数据的完整性,我们会计算数据文件的MD5,并把MD5文件和数据文件一同上传。

那么如何产生数据文件的MD5呢?

我们可以通过System.Security.Cryptography.MD5类和System.BitConverter类来实现:

private void WriteMD5(string zipFile, string ctrlFile)
        {
            // Add hash code to ctrl file
            byte[] validHash = GenerateMD5Hash(zipFile);
            // make sure that we add hash value in a new line
            bool addNewLine = false;
            using (StreamReader sr = new StreamReader(ctrlFile))
            {
                string[] lines = sr.ReadToEnd().Split(new char[] { ‘\n‘ });
                if (lines.Length == 1) addNewLine = true;
            }

// ready to put the control file, so add the hash string to it
            using (StreamWriter sw = new StreamWriter(ctrlFile, true))
            {
                if (addNewLine) sw.WriteLine("");
                sw.WriteLine(BitConverter.ToString(validHash).Replace("-", ""));
            }
        }

private byte[] GenerateMD5Hash(string localFileName)
        {
            byte[] localHash = null;
            using (MD5 md5Hash = MD5.Create())
            {
                using (FileStream localFile = File.OpenRead(localFileName))
                {
                    localHash = md5Hash.ComputeHash(localFile);
                }
            }
            return localHash;
        }

c# 如何给文件计算MD5

时间: 2024-10-15 05:25:10

c# 如何给文件计算MD5的相关文章

python计算文件的md5值

前言 最近要开发一个基于python的合并文件夹/目录的程序,本来的想法是基于修改时间的比较,即判断文件有没有改变,比较两个文件的修改时间即可.这个想法在windows的pc端下测试没有问题. 但是当把一个文件从pc端复制到优盘时出现了一个问题,复制到优盘的文件比pc端的文件慢了两秒钟! 这里我用的复制函数是 shutil.copy2(),理论上它会把修改时间和最后访问时间也复制过来1,但是实际情况并不是完全相同. 详细情况我在segmentfault里提出了问题:为什么将一个文件从pc中复制到

用Python计算文件的MD5值

尽管计算MD5有很多小工具,重装系统后还得去找,就自己用Python写了一个: getMD5.py import hashlib import sys if __name__ == '__main__': if len(sys.argv)!= 2: sys.exit('argv error!') m = hashlib.md5() n = 1024*4 inp = open(sys.argv[1],'rb') while True: buf = inp.read(n) if buf: m.upd

c# 计算字符串和文件的MD5值的方法

快速使用Romanysoft LAB的技术实现 HTML 开发Mac OS App,并销售到苹果应用商店中. <HTML开发Mac OS App 视频教程> 土豆网同步更新:http://www.tudou.com/plcover/VHNh6ZopQ4E/ 百度网盘同步:http://pan.baidu.com/s/1jG1Q58M 分享  [中文纪录片]互联网时代   http://pan.baidu.com/s/1qWkJfcS 官方QQ群:(申请加入,说是我推荐的) App实践出真知 4

C# 计算文件的MD5值

/// <summary> /// 计算文件的MD5校验 /// </summary> /// <param name="fileName"></param> /// <returns></returns> public static string GetMd5HashFromFile(string fileName) { try { FileStream file = new FileStream(fileNam

Linux下C语言计算文件的md5值(32位的)

google了好久都没有找到合适的,其实我只需要一个函数,能计算文件的 md5 值就好, 后来找到了 md5.h 和 md5.c 的源文件,仿照别人的封装了个函数(他那个有问题,和 md5sum 计算出来的都不一样). 废话少说,直接贴代码: (再废一句话,如果只想计算字符串的md5值,把字符串传给 MD5Update 函数一次就好) #include "md5.h" #include <stdio.h> #include <stdlib.h> #include

计算指定文件的MD5值

原文:计算指定文件的MD5值 /// <summary> /// 计算指定文件的MD5值 /// </summary> /// <param name="fileName">指定文件的完全限定名称</param> /// <returns>返回值的字符串形式</returns> public static String ComputeMD5(String fileName) { var hashMD5 = Stri

计算文件的MD5值(Java &amp; Rust)

Java public class TestFileMD5 { public final static String[] hexDigits = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b",

计算某个时间段(2017-10-01 2017-12-01)内svn更新文件的MD5

#!/bin/sh svn up svn log -v -r {$1}:{$2} | grep / | grep -v xxx | sort -f -u | uniq | awk -F 'xxxx' '{print $2}' | xargs md5sum > xxx.txt 0.svn更新 svn log -v -r {$1}:{$2} 1.时间格式: yyyy-mm-dd 2.过滤xxx grep -v xxx 3.排序 sort -f -u 4.去重 uniq 5.筛选目录 awk -F '

字符串和文件的MD5

1 [1] 计算文件MD5值的方法: 2 /// <summary> 3 /// 计算文件MD5值 4 /// </summary> 5 /// <param name="str">需要计算的文件路径</param> 6 /// <returns>MD5值</returns> 7 public static string MD5Value(String filepath) 8 { 9 MD5 md5 = new M