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
              
            }

  • 相关阅读:
    解决org.apache.jasper.JasperException: Failed to load or instantiate TagLibraryVal
    学java快2月了,对其应该有点清晰的认识了
    Linux(CentOS)挂载移动硬盘
    SEVERE: A child container failed during start
    JSTL 标签 详解
    转载自MSDN:Implementing a Membership Provider
    一个比较实用的服务器端模拟客户端Alert的代码
    简单的SQL分页法
    转载:Global.asax 文件 使用参考
    转载:缓存 Cache
  • 原文地址:https://www.cnblogs.com/chenjm/p/2877061.html
Copyright © 2011-2022 走看看