cookie读取中文时乱码
先写入一个cookie;
public static void SetCookie(string name, string value, int day)
{
name = Encrypt(name,"ToCookie");
value = Encrypt(value, "ToCookie");
HttpCookie cookie = new HttpCookie(name, value);
cookie.Expires = DateTime.Now.AddDays(day);
//判断是否存在,如果不存在就创建
if (HttpContext.Current.Request.Cookies[name] == null)
{
HttpContext.Current.Response.SetCookie(cookie);
}
}
然后读取一个cookie:
public string GetCookie(string cookie)
{
cookie = CookieManager.Encrypt(cookie, "ToCookie");
//判断是否存在
if (Request.Cookies[cookie] != null)
{
return CookieManager.Decrypt(Request.Cookies[cookie].Value.ToString(), "ToCookie");
}
else
{
return "";
}
}
cookie肯定也要加密
#region DEC 加密过程
/// <summary>
/// 加密
/// </summary>
/// <param name="pToEncrypt"></param>
/// <param name="sKey"></param>
/// <returns></returns>
public static string Encrypt(string pToEncrypt, string sKey)
{
DESCryptoServiceProvider des = new DESCryptoServiceProvider(); //把字符串放到byte数组中
byte[] inputByteArray = Encoding.Default.GetBytes(pToEncrypt);
//byte[] inputByteArray=Encoding.Unicode.GetBytes(pToEncrypt);
des.Key = ASCIIEncoding.ASCII.GetBytes(sKey); //建立加密对象的密钥和偏移量
des.IV = ASCIIEncoding.ASCII.GetBytes(sKey); //原文使用ASCIIEncoding.ASCII方法的GetBytes方法
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();
}
#endregion
#region DEC 解密过程
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();
StringBuilder ret = new StringBuilder(); //建立StringBuild对象,CreateDecrypt使用的是流对象,必须把解密后的文本变成流对象
return System.Text.Encoding.Default.GetString(ms.ToArray());
}
///其中的sKey非常重要,定义的时候定义成string然后赋值等于八个字母或数字,注意,必须8个
///这个也很实用,譬如你想进入文章页面,传入的参数的aid=10000
///这时把10000给加密
///然后接受的时候解密.这样能有效的防止sql注入攻击!!!?????
#endregion
转载于:https://www.cnblogs.com/zhanghai/p/4461178.html
cookie读取中文时乱码相关推荐
- c语言feek函数读取中文出现乱码
c语言feek函数读取中文出现乱码 在文件操作的学习中,发现读取文件的中文时会出现乱码 当输入的文字改成英文时则不会出现乱码,于是猜想是否和中文与英文占用的字节有关系,实践得出结论,的确是字节搞的鬼, ...
- C#中StreamReader读取中文出现乱码
有时在用C#中StreamReader读取中文时出现乱码 如: using System; using System.Collections.Generic; using System.Linq; u ...
- python存成csv文件时中文乱码_Python在向CSV文件写中文时乱码的处理办法
前言 python2最大的坑在于中文编码问题,遇到中文报错首先加u,再各种encode.decode. 当list.tuple.dict里面有中文时,打印出来的是Unicode编码,这个是无解的. 对 ...
- split逗号分割中文出现乱码java_Java中URL传中文时乱码的问题解决方案
前言 Java中URL传中文时乱码的问题相信不少朋友都遇到过,最近就遇到一个问题,就是在Action当中把一条中文信息绑定在URL的后面,ActionForward到别一个页面时,用reqeust.g ...
- Android读取中文文件乱码解决方法
最近在做个MP3播放器,出现中文乱码问题,在网上找了很多解决办法,我整理了出现乱码的点和解决方案,拿出来和大家共享一下 1.读取中文文件乱码解决方法 package com.apj.conv; imp ...
- python json.dumps()有中文时乱码
python json.dumps()有中文时乱码 json.dumps() 把 Python 字典类型转换为 JSON 对象 import jsondata = {'a': 'adv. 如同,像-- ...
- html调用外部js文件乱码,引用的js文件有中文时乱码
Javascript 代码比较多时,通常把代码保存到一个独立的 js 文件中,这样不但利于减少 html 文件长度好布局修改,而且利于搜索引擎蜘蛛抓取.把 Javascript 代码放到 js 文件后 ...
- EXE4J 解决生成文件时或者读取文件时乱码
EXE4J 解决生成.文件时或者读取文件时乱码问题一定要添加:VM Parameters:-Dfile.encoding=utf-8 下载链接:https://download.csdn.net/ ...
- net2.0中使用Cookie保存中文出现乱码的解决方法
今天朋友注册会员账号使用了中文,登陆后发现用户名变成了乱码,后来发现是因为账号直接用cookie保存的,而cookie对中文不支持才导致乱码的情况.下面的代码是在网上找的 设置cookie时: Htt ...
最新文章
- 多核 CPU 和多个 CPU 有何区别
- linux 下Eclipse的安装
- 参考文献_参考文献:
- 开源项目中经常出现的七种错误
- HTML框架(Frames)
- linux 内存管理 ppt,Linux内存管理 Memory Manager.ppt
- python列表的特点_python基础(一)列表、集合和元组的基本特性
- 针对WEB前端新人的前端知识体系
- 告别写笔记,AI 实时转写黑科技来了!
- f2fs系列之二: 重要的数据结构
- Python图片添加好看的中文字体并根据图片动态改变文字大小
- 鼎捷易助8.0ERP系统制造业ERP系统介绍
- 高手UI设计师干货总结分享品牌LOGO设计的过程要求及方法
- 新媒体运营:23种免费获取流量的运营套路 ,你知道几种? 黎想
- python第五章总结
- 什么是散列表(Hash Table)
- 如果早晚都要死去,为什么还要活着?
- C++ 在图片上打印文字并保存图片
- 2018 Google I/O 中最重要的十项更新
- 高频交易系统性能应该从哪些方面优化?
热门文章
- 未来教育计算机二级01为法律一班,2019年3月计算机二级MSOffice提分试题及答案012...
- 回文数Python解法
- 小米笔记本air无法充电_惠普笔记本电池无法充电问题的解决方法
- 数据仓库工具箱:维度建模权威指南3
- html worker api,worker_threads 工作线程
- matlab平面抛射方程,MATLAB 数学实验 第七章 微分方程与计算机模拟 PPT注记
- 拉格朗日插值的优缺点_拉格朗日与牛顿插值法的比较
- split逗号分割中文出现乱码java_Java中URL传中文时乱码的问题解决方案
- 嵌入式工程师最后都选择了什么职位?
- 砰的一声,实验室又炸鸡了