zoukankan      html  css  js  c++  java
  • MD5加密 时间差 流水号等方法

            /// <summary>
            /// 使用TimeSpan计算两个时间差 
            /// </summary>
            /// <param name="DateTime1"></param>
            /// <param name="DateTime2"></param>
            /// <returns>Subtract:从中减去另一个TimeSpan值</returns>
            private string DateDiff(DateTime DateTime1, DateTime DateTime2)
            {
                string dateDiff = null;
                TimeSpan ts = DateTime1.Subtract(DateTime2).Duration();
                dateDiff = ts.Days.ToString() + "" + ts.Hours.ToString() + "小时" + ts.Minutes.ToString() + "分钟" + ts.Seconds.ToString() + "";
                return dateDiff;
            }
    
            /// <summary>
            /// // 计算字符串的 MD5 哈希值,并将该哈希作为 32 字符的十六进制格式字符串返回
            /// </summary>
            /// <param name="inputStr"></param>
            /// <returns>常用于用户注册</returns>
            public string ToMD5Hash(string inputStr)
            {
                // 创建一个MD5CryptoServiceProvider对象的新实例
                MD5 newMd5 = new MD5CryptoServiceProvider();
                // 将输入的字符串转换为一个字节数组并计算哈希值。
                byte[] sourceBit = Encoding.Default.GetBytes(inputStr);
                byte[] dataBit = newMd5.ComputeHash(sourceBit);
                string directStr = BitConverter.ToString(dataBit).Replace("-", "");
                return directStr;
            }
            
            /// <summary>
            /// // 验证输入字符串经MD5转换后,是否等同于一个哈希值
            /// </summary>
            /// <param name="inputStr"></param>
            /// <param name="hash"></param>
            /// <returns>常用于用户登录</returns>
            public bool VerifyMd5Hash(string inputStr, string hash)
            {
                // 将输入字符串MD5加密
                string hashOfInput = ToMD5Hash(inputStr);
    
                // 创建一个StringComparer实例来比较两个哈希值
                // StringComparer.OrdinalIgnoreCase:获取 StringComparer 对象
                // 该对象执行不区分大小写的序号字符串比较。
                StringComparer comparer = StringComparer.OrdinalIgnoreCase;
    
                return comparer.Compare(hashOfInput, hash) == 0;
            }
            /// <summary>
            /// 生成年月日时分秒时间流水号格式
            /// </summary>
            /// <param name="now"></param>
            /// <returns></returns>
            public static string SerialNumber(DateTime now)
            {
                int year = now.Year;
                int Month = now.Month;//月部分
                int Day = now.Day;//月中的第几天
                int Hour = now.Hour;//
                int Minute = now.Minute;//
                int Second = now.Second; //
                return year.ToString("0000") + Month.ToString("00") + Day.ToString("00") + Hour.ToString("00") + Minute.ToString("00") + Second.ToString("00");
            }
            /// <summary>
            /// 根据号以及年月日时分秒生成订单编号
            /// </summary>
            /// <param name="now"></param>
            /// <param name="berthCode"></param>
            /// <returns></returns>
            public static string SerialNumber(DateTime now, string Code)
            {
                int year = now.Year;
                int Month = now.Month;//月部分
                int Day = now.Day;//月中的第几天
                int Hour = now.Hour;//
                int Minute = now.Minute;//
                int Second = now.Second; //
                return Code + year.ToString("0000") + Month.ToString("00") + Day.ToString("00") + Hour.ToString("00") + Minute.ToString("00") + Second.ToString("00");
            }
            /// <summary>
            /// 传过来的DateTime时间格式转换为Unix时间戳格式
            /// </summary>
            /// <param name="s"></param>
            /// <returns></returns>
            public static string ConventDateTimeInt(string time)
            {
                System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1, 0, 0, 0, 0));
                //截取时间转换为标准时间格式
                string str = time.Substring(0, 4) + "-" + time.Substring(4, 2) + "-" + time.Substring(6, 2) + " " + time.Substring(8, 2) + ":" + time.Substring(10, 2) + ":" + time.Substring(12, 2);
                DateTime nowTime = Convert.ToDateTime(str);
                long unixTime = (long)Math.Round((nowTime - startTime).TotalMilliseconds / 1000, MidpointRounding.AwayFromZero) * 1000;
                return unixTime.ToString();
            }
            /// <summary>
            /// Unix时间戳转换为DateTime类型时间
            /// </summary>
            /// <param name="d"></param>
            /// <returns></returns>
            public static System.DateTime ConvertIntDateTime(double d)
            {
                System.DateTime time = System.DateTime.MinValue;
                System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));
                time = startTime.AddMilliseconds(d);
                return time;
            }
            /// <summary>
            /// 时间差 
            /// </summary>
            /// <param name="now"></param>
            /// <returns></returns>
            public static int DateTimeSubtract(DateTime now)
            {
                TimeSpan time = DateTime.Now.Subtract(now);
                int hours = time.Hours;//获取小时
                int Minutes = time.Minutes;//获取分钟
                int Seconds = time.Seconds;//获取秒数
                return hours * 60 * 60 + Minutes * 60 + Seconds;
            }
           
            
  • 相关阅读:
    阿里云服务器 FTP配置图文教程和添加两个FTP站点
    SAP 用事务码SQVI 做简单报表 .
    公司间联动权限解决方案
    table合并单元格colspan和rowspan .
    js更改input标签的读写属性
    小div在大div中垂直居中,以及div在页面垂直居中
    UI控件(UITextField)
    node基本理念(事件、多线程、进程)
    MyBatis(跨表查询)
    MyBatis(增删改查)
  • 原文地址:https://www.cnblogs.com/Warmsunshine/p/3720737.html
Copyright © 2011-2022 走看看