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
              
            }

  • 相关阅读:
    在VC6.0中虚函数的实现原理
    札记Microsoft基本类库应用程序框架
    typedef用法剖析
    申请成功记录记录
    vc++6.0环境中swap函数
    ubuntu12.04 安装JDK7
    N皇后问题的位运算求解——目前最快的方法
    Linux常用命令小结
    Ubuntu添加自己的桌面快捷方式
    C++静态成员函数小结(转)
  • 原文地址:https://www.cnblogs.com/chenjm/p/2877061.html
Copyright © 2011-2022 走看看