zoukankan      html  css  js  c++  java
  • MD5编码

    1   x2方式和x 方式的区别是 比如 比特为 0  x2显示的是 07 x显示的是 7 我们如果是要固定位32位MD5编码的话就使用x2方式

    字符串MD5
    public static string GetMD5(string str) 
    { 
        StringBuilder sb = new StringBuilder(); 
        foreach (byte b in System.Security.Cryptography.MD5.Create().ComputeHash(Encoding.UTF8.GetBytes(str))) 
        { 
            sb.Append(b.ToString("x2")); 
        } 
        return sb.ToString(); 
    }

    对文件流进行MD5加密

    对文件流进行MD5加密
    /// <summary>
         /// 对文件流进行MD5加密
         /// </summary>
         /// <param name="filePath"></param>
         /// <returns></returns>
         /// <example></example>
         public static string MD5Stream(string filePath)
         {
             FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read);
           
             MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
             md5.ComputeHash(fs);
             fs.Close();
           
             byte[] b = md5.Hash;
             md5.Clear();
           
             StringBuilder sb = new StringBuilder(32);
             for (int i = 0; i < b.Length; i++)
             {
                 sb.Append(b[i].ToString("X2"));
             }
           
             Console.WriteLine(sb.ToString());
             Console.ReadLine();
           
             return sb.ToString();
         }

    对文件进行MD5加密

    对文件进行MD5加密
    /// <summary>
          /// 对文件进行MD5加密
          /// </summary>
          /// <param name="filePath"></param>
          public static void MD5File(string filePath)
          {
              FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read);
              int bufferSize = 1048576; // 缓冲区大小,1MB
              byte[] buff = new byte[bufferSize];
          
              MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
              md5.Initialize();
          
              long offset = 0;
              while (offset < fs.Length)
              {
                  long readSize = bufferSize;
                  if (offset + readSize > fs.Length)
                  {
                      readSize = fs.Length - offset;
                  }
          
                  fs.Read(buff, 0, Convert.ToInt32(readSize)); // 读取一段数据到缓冲区
          
                  if (offset + readSize < fs.Length) // 不是最后一块
                  {
                      md5.TransformBlock(buff, 0, Convert.ToInt32(readSize), buff, 0);
                  }
                  else // 最后一块
                  {
                      md5.TransformFinalBlock(buff, 0, Convert.ToInt32(readSize));
                  }
          
                  offset += bufferSize;
              }
          
              fs.Close();
              byte[] result = md5.Hash;
              md5.Clear();
          
              StringBuilder sb = new StringBuilder(32);
              for (int i = 0; i < result.Length; i++)
              {
                  sb.Append(result[i].ToString("X2"));
              }
          
              Console.WriteLine(sb.ToString());
              Console.ReadLine();
          }

    返回指定文件的MD5值 

    返回指定文件的MD5值
    /// <summary>  
    /// 返回指定文件的MD5值  
    /// </summary>  
    /// <param name="path"></param>  
    /// <returns></returns>  
    public static string Check(string path)
    {
        if (!File.Exists(path))
            throw new ArgumentException(string.Format("<{0}>, 不存在", path));
        using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read))
        {
            MD5CryptoServiceProvider md5Provider = new MD5CryptoServiceProvider();
            byte[] buffer = md5Provider.ComputeHash(fs);
            string resule = BitConverter.ToString(buffer);
            resule = resule.Replace("-", "");
            return resule;
        }
    }
  • 相关阅读:
    中国首个 SaaS 模式的云告警平台安卓版 APP 上线
    Cloud Insight 和 BearyChat 第一次合体,好紧张!
    安卓 DevOps:从一次推送命令到生产
    Jmeter 使用笔记之 html 报告扩展(一)
    10大常见的安全漏洞!你知道吗?
    iOS 并发:NSOperation 与调度队列入门(1)
    欺诈网站都注重用户体验!你,还在等什么?!
    你知道在深圳一个月花多少钱吗?
    找不到编译器:wepy-compiler-less
    wepy项目的学习
  • 原文地址:https://www.cnblogs.com/zhanhengzong/p/3035277.html
Copyright © 2011-2022 走看看