zoukankan      html  css  js  c++  java
  • md5 加解密

    using JGDJWeb.Model;
    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Security.Cryptography;
    using System.Text;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Xml;
    using System.Text.RegularExpressions;
     
    namespace JGDJWeb.Helper
    {
        public static class Encrypt
        {
            #region 加密解密方法
            public static string Key = "DKMAB5DE";//加密密钥必须为8位
            /// <summary>
            /// 加密方法
            /// </summary>
            /// <param name="pToEncrypt"></param>
            /// <returns></returns>
            public static string MD5Encrypt(string pToEncrypt)
            {
                if (string.IsNullOrEmpty(pToEncrypt))
                    return "";
                DESCryptoServiceProvider des = new DESCryptoServiceProvider();
                byte[] inputByteArray = Encoding.Default.GetBytes(pToEncrypt);
                des.Key = ASCIIEncoding.ASCII.GetBytes(Key);
                des.IV = ASCIIEncoding.ASCII.GetBytes(Key);
                MemoryStream ms = new MemoryStream();
                CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
                cs.Write(inputByteArray, 0, inputByteArray.Length);
                cs.FlushFinalBlock();
                StringBuilder ret = new StringBuilder();
                foreach (byte in ms.ToArray())
                {
                    ret.AppendFormat("{0:X2}", b);
                }
                ret.ToString();
                return ret.ToString();
     
            }
            /// <summary>
            /// 解密算法
            /// </summary>
            /// <param name="pToDecrypt"></param>
            /// <returns></returns>
            public static string MD5Decrypt(string pToDecrypt)
            {
                DESCryptoServiceProvider des = new DESCryptoServiceProvider();
                byte[] inputByteArray = new byte[pToDecrypt.Length / 2];
                for (int x = 0; x < pToDecrypt.Length / 2; x++)
                {
                    int i = (Convert.ToInt32(pToDecrypt.Substring(x * 2, 2), 16));
                    inputByteArray[x] = (byte)i;
                }
                des.Key = ASCIIEncoding.ASCII.GetBytes(Key);
                des.IV = ASCIIEncoding.ASCII.GetBytes(Key);
                MemoryStream ms = new MemoryStream();
                CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
                cs.Write(inputByteArray, 0, inputByteArray.Length);
                cs.FlushFinalBlock();
                StringBuilder ret = new StringBuilder();
                return System.Text.Encoding.ASCII.GetString(ms.ToArray());
            }
            #endregion
     
            public static JY_Newss getNews(string newsNo)
            {
                using (var context = new JGDJEntities())
                {
                    try
                    {
                        return context.JY_Newss.Where(c => c.NewsNo == newsNo).First();
                    }
                    catch (Exception e)
                    {
                        return new JY_Newss();
                    }
                }
            }
     
            public static string subContent(string content,int length)
            {
               
                if (content.Length > length)
                {
                    //content= NoHTML(content);
                    content = content.Substring(0, length)+"...";
                }
                return content;
            }
     
            public static string NoHTML(string Htmlstring)
            {
                ////删除脚本
                //Htmlstring = Regex.Replace(Htmlstring, @"<script[^>]*?>.*?</script>", "", RegexOptions.IgnoreCase);
                ////删除style
                //Htmlstring = Regex.Replace(Htmlstring, @"<style[^>]*?>.*?</style>", "", RegexOptions.IgnoreCase);
                ////删除HTML
                //Htmlstring = Regex.Replace(Htmlstring, @"<(.[^>]*)>", "", RegexOptions.IgnoreCase);
                //Htmlstring = Regex.Replace(Htmlstring, @"([
    ])[s]+", "", RegexOptions.IgnoreCase);
                //Htmlstring = Regex.Replace(Htmlstring, @"-->", "", RegexOptions.IgnoreCase);
                //Htmlstring = Regex.Replace(Htmlstring, @"<!--.*", "", RegexOptions.IgnoreCase);
                //Htmlstring = Regex.Replace(Htmlstring, @"&(quot|#34);", """, RegexOptions.IgnoreCase);
                //Htmlstring = Regex.Replace(Htmlstring, @"&(amp|#38);", "&", RegexOptions.IgnoreCase);
                //Htmlstring = Regex.Replace(Htmlstring, @"&(lt|#60);", "<", RegexOptions.IgnoreCase);
                //Htmlstring = Regex.Replace(Htmlstring, @"&(gt|#62);", ">", RegexOptions.IgnoreCase);
                //Htmlstring = Regex.Replace(Htmlstring, @"&(nbsp|#160);", " ", RegexOptions.IgnoreCase);
                //Htmlstring = Regex.Replace(Htmlstring, @"&(iexcl|#161);", "xa1", RegexOptions.IgnoreCase);
                //Htmlstring = Regex.Replace(Htmlstring, @"&(cent|#162);", "xa2", RegexOptions.IgnoreCase);
                //Htmlstring = Regex.Replace(Htmlstring, @"&(pound|#163);", "xa3", RegexOptions.IgnoreCase);
                //Htmlstring = Regex.Replace(Htmlstring, @"&(copy|#169);", "xa9", RegexOptions.IgnoreCase);
                //Htmlstring = Regex.Replace(Htmlstring, @"&#(d+);", "", RegexOptions.IgnoreCase);
                //Htmlstring.Replace("<", "");
                //Htmlstring.Replace(">", "");
                //Htmlstring.Replace("
    ", "");
     
     
                /*
                * 最好把所有的特殊HTML标记都找出来,然后把与其相对应的Unicode字符一起影射到Hash表内,最后一起都替换掉
                */
                //先单独测试,成功后,再把所有模式合并
                //注:这两个必须单独处理
                //去掉嵌套了HTML标记的JavaScript:(<script)[\s\S]*(</script>)
                //去掉css标记:(<style)[\s\S]*(</style>)
                //去掉css标记:\..*\{[\s\S]*\}
                Htmlstring = Regex.Replace(Htmlstring, "(<script)[\s\S]*?(</script>)|(<style)[\s\S]*?(</style>)", " ", RegexOptions.IgnoreCase);
                //htmlStream = RemoveTag(htmlStream, "script");
                //htmlStream = RemoveTag(htmlStream, "style");
                //去掉普通HTML标记:<[^>]+>
                //替换空格:&nbsp;|&amp;|&shy;|&#160;|&#173;
                Htmlstring = Regex.Replace(Htmlstring, "<[^>]+>|&nbsp;|&amp;|&shy;|&#160;|&#173;|&bull;|&lt;|&gt;", " ", RegexOptions.IgnoreCase);
                //htmlStream = RemoveTag(htmlStream);
                //替换左尖括号
                //htmlStream = Regex.Replace(htmlStream, "&lt;", "<");
                //替换右尖括号
                //htmlStream = Regex.Replace(htmlStream, "&gt;", ">");
                //替换空行
                //htmlStream = Regex.Replace(htmlStream, "[
    |
    |	]", " ");//[
    |
    ][	*| *]*[
    |
    ]
                Htmlstring = Regex.Replace(Htmlstring, "(
    
    [
    |
    |	]*
    
    )|(
    [
    |
    |	]*
    )", "
    
    ");
                Htmlstring = Regex.Replace(Htmlstring, "[	]{1,}", " ");
      
                Htmlstring = HttpContext.Current.Server.HtmlEncode(Htmlstring).Trim();
                return Htmlstring;
            }
     
            public static string GetXML(string type)
            {
                string classNo = "";
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load(AppDomain.CurrentDomain.SetupInformation.ApplicationBase +"/XML/Menu.xml");
                XmlNodeList xnl = xmlDoc["root"].ChildNodes;
                foreach (XmlNode lastNode in xnl)
                {
                    if (type == lastNode.Attributes["id"].Value.ToString())
                    {
                        foreach (XmlNode node in lastNode.ChildNodes)
                        {
                            classNo = node.InnerText;
                        }
                        classNo = MD5Encrypt(classNo);
                    }
                }
                return classNo;
            }
     
            public static string GetClientIP()
            {
                string result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
                if (null == result || result == String.Empty)
                {
                result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
                }
     
                if (null == result || result == String.Empty)
                {
                result = HttpContext.Current.Request.UserHostAddress;
                }
                return result;
            }
     
            public static void UpdateClick(string newsNo)
            {
                using (var context = new JGDJEntities())
                {
                    var news = context.JY_Newss.Where(j => j.NewsNo == newsNo).FirstOrDefault();
                    if (news != null)
                    {
                        if (news.Click == null)
                        {
                            news.Click = 1;
                        }
                        else
                        {
                            news.Click += 1;
                        }
                        var clickD = new JY_NewsClick_D();
                        clickD.CDate = int.Parse(DateTime.Now.ToString("yyyyMMdd"));
                        clickD.NewsID = news.NewsID;
                        clickD.CreateTime = DateTime.Now;
                        clickD.IP = GetClientIP();
                        context.JY_NewsClick_D.AddObject(clickD);
                        var clickY = context.JY_NewsClick_Y.Where(j => j.NewsID == news.NewsID&&j.Years==DateTime.Now.Year).FirstOrDefault();
                        if (clickY != null)
                        {
                            switch (DateTime.Now.Month)
                            {
                                case 1: clickY.M1 = clickY.M1 == null ? 1 : (clickY.M1 + 1); break;
                                case 2: clickY.M2 = clickY.M2 == null ? 1 : (clickY.M2 + 1); break;
                                case 3: clickY.M3 = clickY.M3 == null ? 1 : (clickY.M3 + 1); break;
                                case 4: clickY.M4 = clickY.M4 == null ? 1 : (clickY.M4 + 1); break;
                                case 5: clickY.M5 = clickY.M5 == null ? 1 : (clickY.M5 + 1); break;
                                case 6: clickY.M6 = clickY.M6 == null ? 1 : (clickY.M6 + 1); break;
                                case 7: clickY.M7 = clickY.M7 == null ? 1 : (clickY.M7 + 1); break;
                                case 8: clickY.M8 = clickY.M8 == null ? 1 : (clickY.M8 + 1); break;
                                case 9: clickY.M9 = clickY.M9 == null ? 1 : (clickY.M9 + 1); break;
                                case 10: clickY.M10 = clickY.M10 == null ? 1 : (clickY.M10 + 1); break;
                                case 11: clickY.M11 = clickY.M11 == null ? 1 : (clickY.M11 + 1); break;
                                case 12: clickY.M12 = clickY.M12 == null ? 1 : (clickY.M12 + 1); break;
                            }
                        }
                        else
                        {
                            clickY = new JY_NewsClick_Y();
                            clickY.NewsID = news.NewsID;
                            clickY.Years = DateTime.Now.Year;
                            switch (DateTime.Now.Month)
                            {
                                case 1: clickY.M1 = clickY.M1 == null ? 1 : (clickY.M1 + 1); break;
                                case 2: clickY.M2 = clickY.M2 == null ? 1 : (clickY.M2 + 1); break;
                                case 3: clickY.M3 = clickY.M3 == null ? 1 : (clickY.M3 + 1); break;
                                case 4: clickY.M4 = clickY.M4 == null ? 1 : (clickY.M4 + 1); break;
                                case 5: clickY.M5 = clickY.M5 == null ? 1 : (clickY.M5 + 1); break;
                                case 6: clickY.M6 = clickY.M6 == null ? 1 : (clickY.M6 + 1); break;
                                case 7: clickY.M7 = clickY.M7 == null ? 1 : (clickY.M7 + 1); break;
                                case 8: clickY.M8 = clickY.M8 == null ? 1 : (clickY.M8 + 1); break;
                                case 9: clickY.M9 = clickY.M9 == null ? 1 : (clickY.M9 + 1); break;
                                case 10: clickY.M10 = clickY.M10 == null ? 1 : (clickY.M10 + 1); break;
                                case 11: clickY.M11 = clickY.M11 == null ? 1 : (clickY.M11 + 1); break;
                                case 12: clickY.M12 = clickY.M12 == null ? 1 : (clickY.M12 + 1); break;
                            }
                            context.JY_NewsClick_Y.AddObject(clickY);
                        }
                        var classList = context.JY_NewsClass.Where(c => c.NewsNo == news.NewsNo).Select(c => c.ClassNo).ToList();
                        foreach (var item in classList)
                        {
                            var classs = context.JY_News_Classs.Where(j => j.ClassNo == item).FirstOrDefault();
                            if (classs != null)
                            {
                                if (classs.Click == null)
                                {
                                    classs.Click = 1;
                                }
                                else
                                {
                                    classs.Click += 1;
                                }
                                var CclickD = new JY_ClasssClick_D();
                                CclickD.CDate = int.Parse(DateTime.Now.ToString("yyyyMMdd"));
                                CclickD.ClassID = classs.ClassID;
                                context.JY_ClasssClick_D.AddObject(CclickD);
                            }
                            var CclickY = context.JY_ClasssClick_Y.Where(j => j.ClassID == classs.ClassID && j.Years == DateTime.Now.Year).FirstOrDefault();
                            if (CclickY != null)
                            {
                                switch (DateTime.Now.Month)
                                {
                                    case 1: CclickY.M1 = CclickY.M1 == null ? 1 : (CclickY.M1 + 1); break;
                                    case 2: CclickY.M2 = CclickY.M2 == null ? 1 : (CclickY.M2 + 1); break;
                                    case 3: CclickY.M3 = CclickY.M3 == null ? 1 : (CclickY.M3 + 1); break;
                                    case 4: CclickY.M4 = CclickY.M4 == null ? 1 : (CclickY.M4 + 1); break;
                                    case 5: CclickY.M5 = CclickY.M5 == null ? 1 : (CclickY.M5 + 1); break;
                                    case 6: CclickY.M6 = CclickY.M6 == null ? 1 : (CclickY.M6 + 1); break;
                                    case 7: CclickY.M7 = CclickY.M7 == null ? 1 : (CclickY.M7 + 1); break;
                                    case 8: CclickY.M8 = CclickY.M8 == null ? 1 : (CclickY.M8 + 1); break;
                                    case 9: CclickY.M9 = CclickY.M9 == null ? 1 : (CclickY.M9 + 1); break;
                                    case 10: CclickY.M10 = CclickY.M10 == null ? 1 : (CclickY.M10 + 1); break;
                                    case 11: CclickY.M11 = CclickY.M11 == null ? 1 : (CclickY.M11 + 1); break;
                                    case 12: CclickY.M12 = CclickY.M12 == null ? 1 : (CclickY.M12 + 1); break;
                                }
                            }
                            else
                            {
                                CclickY = new JY_ClasssClick_Y();
                                CclickY.ClassID = classs.ClassID;
                                CclickY.Years = DateTime.Now.Year;
                                switch (DateTime.Now.Month)
                                {
                                    case 1: CclickY.M1 = CclickY.M1 == null ? 1 : (CclickY.M1 + 1); break;
                                    case 2: CclickY.M2 = CclickY.M2 == null ? 1 : (CclickY.M2 + 1); break;
                                    case 3: CclickY.M3 = CclickY.M3 == null ? 1 : (CclickY.M3 + 1); break;
                                    case 4: CclickY.M4 = CclickY.M4 == null ? 1 : (CclickY.M4 + 1); break;
                                    case 5: CclickY.M5 = CclickY.M5 == null ? 1 : (CclickY.M5 + 1); break;
                                    case 6: CclickY.M6 = CclickY.M6 == null ? 1 : (CclickY.M6 + 1); break;
                                    case 7: CclickY.M7 = CclickY.M7 == null ? 1 : (CclickY.M7 + 1); break;
                                    case 8: CclickY.M8 = CclickY.M8 == null ? 1 : (CclickY.M8 + 1); break;
                                    case 9: CclickY.M9 = CclickY.M9 == null ? 1 : (CclickY.M9 + 1); break;
                                    case 10: CclickY.M10 = CclickY.M10 == null ? 1 : (CclickY.M10 + 1); break;
                                    case 11: CclickY.M11 = CclickY.M11 == null ? 1 : (CclickY.M11 + 1); break;
                                    case 12: CclickY.M12 = CclickY.M12 == null ? 1 : (CclickY.M12 + 1); break;
                                }
                                context.JY_ClasssClick_Y.AddObject(CclickY);
                            }
                        }
                        context.SaveChanges();
                    }
                }
            }
     
        }
    }
  • 相关阅读:
    ASP.NET Core真实管道详解[2]:Server是如何完成针对请求的监听、接收与响应的【上】
    ASP.NET Core真实管道详解[1]:中间件是个什么东西?
    .NET Core下的日志(3):如何将日志消息输出到控制台上
    “前.NET Core时代”如何实现跨平台代码重用 ——程序集重用
    “前.NET Core时代”如何实现跨平台代码重用 ——源文件重用
    .NET Core下的日志(2):日志模型详解
    .NET Core下的日志(1):记录日志信息
    ASP.NET Core 1.0中实现文件上传的两种方式(提交表单和采用AJAX)
    ASP.NET Core管道深度剖析[共4篇]
    ASP.NET Core管道深度剖析(4):管道是如何建立起来的?
  • 原文地址:https://www.cnblogs.com/hualiu0/p/4535827.html
Copyright © 2011-2022 走看看