• 文件MD5计算



    /****************************************************************************************
    ** 作者: Eddie Xu 
    ** 时间: 2017/11/20 17:05:24
    ** 版本: V1.0.0
    ** CLR: 4.0.30319.42000
    ** GUID: 3d0af2b0-6ef4-4c56-8330-8a9506f5b5b5
    ** 机器名: DESKTOP-ECII567
    ** 描述: 文件处理类
    ****************************************************************************************/

    using Manjinba.Communication.Common.Logging;
    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;

    namespace Manjinba.Communication.Common.Utils
    {
    public static class FileMD5HashCodeUtil
    {
    /// <summary>
    /// 根据文件生成内容MD5
    /// </summary>
    /// <param name="fileName"></param>
    /// <returns></returns>
    public static string GetFileContentMD5HashCode(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();

    //把二进制转化为大写的十六进制
    var result = BitConverter.ToString(retVal).Replace("-", "");
    return result.ToUpper();
    }
    catch (Exception ex)
    {
    LogHelper.GetLog(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName).Error("GetFileContentMD5HashCode() fail,error:" + ex.Message);
    throw new Exception("GetFileContentMD5HashCode() fail,error:" + ex.Message + ex.StackTrace);
    }
    }

    /// <summary>
    /// 根据文件流生成MD5
    /// </summary>
    /// <param name="stream"></param>
    /// <returns></returns>
    public static string GetFileContentMD5HashCode(Stream stream)
    {
    try
    {
    stream.Position = 0;
    // 打开文件需要指定到文件
    System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
    byte[] retVal = md5.ComputeHash(stream);

    //把二进制转化为大写的十六进制
    var result = BitConverter.ToString(retVal).Replace("-", "");
    return result.ToUpper();
    }
    catch (Exception ex)
    {
    LogHelper.GetLog(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName).Error("GetFileContentMD5HashCode() fail,error:" + ex.Message);
    throw new Exception("GetFileContentMD5HashCode() fail,error:" + ex.Message + ex.StackTrace);
    }
    }
    }
    }

  • 相关阅读:
    performance benchmark : memcached vs Kyoto Tycoon
    Adhesive框架系列文章应用程序信息中心模块实现
    神奇的Redis
    使用代码测试ASP.NET MVC2执行流程
    linq2sql代码大全
    7/17博客园活动浅谈网站架构中缓存的应用所有资料
    浅谈.NET下的多线程和并行计算(十四)并行计算前言
    公司.NET 3.5培训资料分享
    mongodb分片集群(sharding with replica set)配置
    mongodb有关的研究
  • 原文地址:https://www.cnblogs.com/Nine4Cool/p/10540659.html
Copyright © 2020-2023  润新知