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
              
            }

  • 相关阅读:
    hive 总结一
    常见排序算法
    HBase 入门
    Spark:三种任务提交流程standalone、yarn-cluster、yarn-client
    YARN 原理简介
    Vue中v-show和v-if的使用以及区别
    JFinal Enjoy指令扩展管理常用文本模板
    JFinalSwagger插件
    layui table 表头和内容数据不能对齐
    start.sh在linux下启动报错 Can't connect to any repository: ,cannot open git-receive-pack
  • 原文地址:https://www.cnblogs.com/chenjm/p/2877061.html
Copyright © 2011-2022 走看看