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 b 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, @"([\r\n])[\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("\r\n", ""); /*
* 最好把所有的特殊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标记:<[^>]+>
//替换空格: |&|­| |
Htmlstring = Regex.Replace(Htmlstring, "<[^>]+>| |&|­| ||•|<|>", " ", RegexOptions.IgnoreCase);
//htmlStream = RemoveTag(htmlStream);
//替换左尖括号
//htmlStream = Regex.Replace(htmlStream, "<", "<");
//替换右尖括号
//htmlStream = Regex.Replace(htmlStream, ">", ">");
//替换空行
//htmlStream = Regex.Replace(htmlStream, "[\n|\r|\t]", " ");//[\n|\r][\t*| *]*[\n|\r]
Htmlstring = Regex.Replace(Htmlstring, "(\r\n[\r|\n|\t| ]*\r\n)|(\n[\r|\n|\t| ]*\n)", "\r\n");
Htmlstring = Regex.Replace(Htmlstring, "[\t| ]{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();
}
}
} }
}
md5 加解密的更多相关文章
- vue 核心加解密工具类 方法
1 /* base64 加解密 2 */ 3 export let Base64 = require('js-base64').Base64 4 5 /* md5 加解密 6 */ 7 export ...
- 前后端java+vue 实现rsa 加解密与摘要签名算法
RSA 加密.解密.签名.验签.摘要,前后端java+vue联调测试通过 直接上代码 // 注意:加密密文与签名都是唯一的,不会变化.// 注意:vue 端密钥都要带pem格式.java 不要带pem ...
- DES,AeS加解密,MD5,SHA加密
1.DES一共就有4个参数参与运作:明文.密文.密钥.向量.其中这4者的关系可以理解为: 密文=明文+密钥+向量: 明文=密文-密钥-向量: 为什么要向量这个参数呢?因为如果有一篇文章,有几个词重复, ...
- Node.js的DES加解密和MD5加密
最基本的就是经常用的md5加密算法 代码如下 var MD5=function (data) { var _encrymd5 = require('crypto').createHas ...
- 2.Java 加解密技术系列之 MD5
Java 加解密技术系列之 MD5 序 背景 正文 结束语 序 上一篇文章中,介绍了最基础的编码方式 — — BASE64,也简单的提了一下编码的原理.这篇文章继续加解密的系列,当然也是介绍比较基础的 ...
- Asp.Net Core 2.0 项目实战(7)MD5加密、AES&DES对称加解密
本文目录 1. 摘要 2. MD5加密封装 3. AES的加密.解密 4. DES加密/解密 5. 总结 1. 摘要 C#中常用的一些加密和解密方案,如:md5加密.RSA加密与解密和DES加密等, ...
- Python用户名密码登录系统(MD5加密并存入文件,三次输入错误将被锁定)及对字符串进行凯撒密码加解密操作
# -*- coding: gb2312 -*- #用户名密码登录系统(MD5加密并存入文件)及对字符串进行凯撒密码加解密操作 #作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.co ...
- MD5+DES在C#.NET与Java/Android中的加解密使用
一.背景后台(C#.NET)使用一个MD5+DES的加解密算法,查了下,很多网友都使用了这个算法.在Android里,也需要这个算法,如何把这个加解密算法切换成Java版,成了难题.毕竟好久没涉及到这 ...
- md5加密,md5加盐加密和解密
package com.java.test; import java.security.MessageDigest; import java.security.SecureRandom; import ...
随机推荐
- 如何在nlp问题中定义自己的数据集
我之前大致写了一篇在pytorch中如何自己定义数据集合,在这里如何自定义数据集 不过这个例子使用的是image,也就是图像.如果我们用到的是文本呢,处理的是NLP问题呢? 在解决这个问题的时候,我在 ...
- 20145202马超GDB调试汇编堆栈过程分析
20145202马超GDB调试汇编堆栈过程分析 esc :w保存,:wq保存并退出 x:删除错误的单个字母 dw:删除整个单词 gcc hello.c -o hello:运行hello.c gcc - ...
- IAR FOR STM8S 错误 An error occurred while retrieving GDI features: gdi-error [40201]解决方法
今早使用IAR调试编译调试一个工程,发现IAR竟然出现如下错误信息 An error occurred ]: Can't access configuration database 在网上查看了一下, ...
- CentOS-6.3-minimal安装gnome桌面环境(转载)
最近,想学着搞搞linux,从入门安装开始,先装centos6.3-minimal,发现是windowser最不习惯的命令界面,先升级桌面,教程如下. 1.添加一个普通用户,并设置密码useradd ...
- SuperHelper——灵活通用的、开源的.Net ORM微型框架
SuperHelper是博主利用业余时间编写的一个ORM微型框架,除了可以提高开发效率,与其它ORM框架相比,博主更加喜欢SuperHelper的使用简单.适用范围广的特点. 简介 SuperHelp ...
- 剑指Offer - 九度1513 - 二进制中1的个数
剑指Offer - 九度1513 - 二进制中1的个数2013-11-29 23:35 题目描述: 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 输入: 输入可能包含多个测试样例. ...
- 《Cracking the Coding Interview》——第11章:排序和搜索——题目2
2014-03-21 20:49 题目:设计一种排序算法,使得anagram排在一起. 解法:自定义一个comparator,使用额外的空间来统计字母个数,然后比较字母个数. 代码: // 11.2 ...
- python学习总结---面向对象1
面向对象 - 与面向过程对比 - 面向过程:数学逻辑的映射,学会做个好员工. - 面向对象:生活逻辑的映射,学会做个好领导. - 生活实例 - 类: 人 手机 电脑 - 对象: 习大大.普京 二狗的i ...
- Opencv4.0.0安装包
这个资源是Opencv4.0.0安装包,包括Windows软件包,Android软件包,IOS软件包,还有opencv的源代码:需要的下载吧. 点击下载
- springboot09 事务 H2数据库
一.事务 1. 事务介绍 事务可以包含多个操作步骤 , 如果有一个步骤失败,那么这一组都以失败告终. 事务是指包含多个微小逻辑单元的一组操作, 只要其中有一个逻辑失败了,那么这一组操作就全部以失败告终 ...