zoukankan      html  css  js  c++  java
  • 获取文件的MD5值

    public static string GetFileHash(string filePath, HashType type)
            {
                if (!File.Exists(filePath))
                    return string.Empty;

                System.Security.Cryptography.HashAlgorithm hasher;
                switch(type)
                {
                    case HashType.SHA1:
                    default:
                        hasher = new SHA1CryptoServiceProvider();
                        break;
                    case HashType.SHA256:
                        hasher = new SHA256Managed();
                        break;
                    case HashType.SHA384:
                        hasher = new SHA384Managed();
                        break;
                    case HashType.SHA512:
                        hasher = new SHA512Managed();
                        break;
                    case HashType.MD5:
                        hasher = new MD5CryptoServiceProvider();
                        break;
                    case HashType.RIPEMD160:
                        hasher = new RIPEMD160Managed();
                        break;
                }
                StringBuilder buff = new StringBuilder();
                try
                {
                    using (FileStream f = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read, 8192))
                    {
                        hasher.ComputeHash(f);
                        Byte[] hash = hasher.Hash;
                        foreach (Byte hashByte in hash)
                        {
                            buff.Append(string.Format("{0:x2}", hashByte));
                        }
                    }
                }
                catch
                {
                    return "Error reading file." + new System.Random(DateTime.Now.Second * DateTime.Now.Millisecond).Next().ToString();
                }
                return buff.ToString();
        }
         public enum HashType
            {
                [Description("SHA-1")]
                SHA1,
                [Description("SHA-256")]
                SHA256,
                [Description("SHA-384")]
                SHA384,
                [Description("SHA-512")]
                SHA512,
                [Description("MD5")]
                MD5,
                [Description("RIPEMD-160")]
                RIPEMD160
              
            }

  • 相关阅读:
    bert系列一:《Attention is all you need》论文解读
    维特比算法及python实现
    手写高斯混合聚类算法
    强化学习应用于游戏Tic-Tac-Toe
    EM算法分析
    手写LVQ(学习向量量化)聚类算法
    手写k-means算法
    tensorflow增强学习应用于一个小游戏
    Opencv之LBP特征(算法)
    手写朴素贝叶斯(naive_bayes)分类算法
  • 原文地址:https://www.cnblogs.com/chenjm/p/2877061.html
Copyright © 2011-2022 走看看