asp.net c#基于DEC的加密与解密
来源:互联网 发布:物理名师课堂软件 编辑:程序博客网 时间:2024/06/08 14:18
加密有两种,一种是需要解密的,一种是不需要解密的,如果不需要解密,就用世界上公认的MD5加密即可,如果需要解密,那么就要用其它方法了,这次应用主要是为了对用户的cookie存储进行加密,同时在读取时再解密,以提高网站安全系数。
使用dec加密与解密,配合自己设置的密钥,就能很好的实现对数据的加密保护。
此功能需要引用 using System.Security.Cryptography;
两个函数代码
/// <summary>
/// DEC 加密过程
/// </summary>
/// <param name="pToEncrypt">被加密的字符串</param>
/// <param name="sKey">密钥(只支持8个字节的密钥,同前面的加密密钥相同)</param>
/// <returns></returns>
public static string Encrypt(string pToEncrypt, string sKey)
{
//访问数据加密标准(DES)算法的加密服务提供程序 (CSP) 版本的包装对象
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
des.Key = ASCIIEncoding.ASCII.GetBytes(sKey); //建立加密对象的密钥和偏移量
des.IV = ASCIIEncoding.ASCII.GetBytes(sKey); //原文使用ASCIIEncoding.ASCII方法的GetBytes方法byte[] inputByteArray = Encoding.Default.GetBytes(pToEncrypt);//把字符串放到byte数组中
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>
/// DEC 解密过程
/// </summary>
/// <param name="pToDecrypt">被解密的字符串</param>
/// <param name="sKey">密钥(只支持8个字节的密钥,同前面的加密密钥相同)</param>
/// <returns>返回被解密的字符串</returns>
public static string Decrypt(string pToDecrypt, string sKey)
{
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(sKey); //建立加密对象的密钥和偏移量,此值重要,不能修改
des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();//建立StringBuild对象,createDecrypt使用的是流对象,必须把解密后的文本变成流对象
StringBuilder ret = new StringBuilder();return System.Text.Encoding.Default.GetString(ms.ToArray());
}
- asp.net c#基于DEC的加密与解密
- Url的DEC加密与解密
- ASP.NET -DEC通过密匙实现加密/解密
- asp.net C#中对Web.Config字符串加密与解密的方法
- c# asp.net 字符串加密解密的类
- c# asp.net 字符串加密解密的类
- ASP.NET C# URL加密解密
- ASP.NET C# URL加密解密
- ASP.NET C# URL加密解密
- ASP.NET C# URL加密解密
- ASP.NET C# URL加密解密
- ASP.NET C# URL加密解密
- C# asp.net字符串加密解密
- ASP.NET C# URL加密解密
- ASP.NET C# MD5加密 解密
- ASP.NET数据库连接字符串的加密与解密
- ASP.NET数据库连接字符串的加密与解密
- ASP.NET数据库连接字符串的加密与解密
- sql在进行模糊查找时特殊字符的转义
- 一个sql取指定日期指定天数内的记录
- 一个优秀的全兼容JS获取图片尺寸封装,无需onload完全完即能得到尺寸
- 各种跨域上传的实现方法
- 生成HTML静态化一个很有用的正则表达式的替换功能
- asp.net c#基于DEC的加密与解密
- 关于style.filter失效的可能情况之一
- .net 2.0与.net 4.0在母板页生成标签上的一个差异
- 给ff的专用的一个css hack
- mfc ListControl 重绘网格线
- IE6中多个绝对定位和相对定位重叠时z-index失效的问题
- .net2.0 Intelligencia.UrlRewriter在(iis6,iis7)伪静态的实现
- 扫盲:js改变css文件中display:none的设置
- ie9 img.complete