zoukankan      html  css  js  c++  java
  • C# 获取MD5值

    class CommonHelper
        {
            /// <summary>
            /// 通过字符串获取MD5值,返回32位字符串。
            /// </summary>
            /// <param name="str"></param>
            /// <returns></returns>
            public static string GetMD5String(string str)
            {
                MD5 md5 = MD5.Create();
                byte[] data = Encoding.UTF8.GetBytes(str);
                byte[] data2 = md5.ComputeHash(data);
                
                return GetbyteToString(data2);
                //return BitConverter.ToString(data2).Replace("-", "").ToLower();
            }
            /// <summary>
            /// 获取MD5值。HashAlgorithm.Create("MD5") 或 MD5.Create() HashAlgorithm.Create("SHA256") 或 SHA256.Create()
            /// </summary>
            /// <param name="str"></param>
            /// <param name="hash"></param>
            /// <returns></returns>
            public static string GetMD5String(string str, HashAlgorithm hash)
            {
                byte[] data = Encoding.UTF8.GetBytes(str);
                byte[] data2 = hash.ComputeHash(data);
                return GetbyteToString(data2);
                //return BitConverter.ToString(data2).Replace("-", "").ToLower();
            }
    
            public static string GetMD5FromFile(string path)
            {
                MD5 md5 = MD5.Create();
                if (!File.Exists(path))
                {
                    return "";
                }
                FileStream stream = File.OpenRead(path);
                byte[] data2 = md5.ComputeHash(stream);
    
                return GetbyteToString(data2);
                //return BitConverter.ToString(data2).Replace("-", "").ToLower();
            }
    
            private static string GetbyteToString(byte[] data)
            {
                StringBuilder sb = new StringBuilder();
                for (int i = 0; i < data.Length; i++)
                {
                    sb.Append(data[i].ToString("x2"));
                }
                return sb.ToString();
            }
        }
  • 相关阅读:
    LA 3938 动态最大连续和 线段树
    UVA 11235 频繁出现的数值 RMQ
    LA 4329 ping-pong树状数组
    LA 3027 合作网络 并查集
    vue-url传参
    vue打开新页面的几种方式
    父子组件传参
    vue--按钮级别的权限控制+插件的使用
    小程序填坑
    webpack小试牛刀
  • 原文地址:https://www.cnblogs.com/han1982/p/4047281.html
Copyright © 2011-2022 走看看