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
              
            }

  • 相关阅读:
    Delphi单元文件之-防止程序重复执行
    cxGrid使用汇总2
    Delphi数组复制
    cxGrid使用汇总1
    Delphi XE5 android 获取网络状态
    xe5 android sample 中的 SimpleList 是怎样绑定的
    XE5 Android 开发数据访问手机端 解决乱码的办法
    设计模式之代理模式
    设计模式之单例模式及原型模式
    设计模式之工厂模式
  • 原文地址:https://www.cnblogs.com/chenjm/p/2877061.html
Copyright © 2011-2022 走看看