先写入一个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读取中文时乱码相关推荐

  1. c语言feek函数读取中文出现乱码

    c语言feek函数读取中文出现乱码 在文件操作的学习中,发现读取文件的中文时会出现乱码 当输入的文字改成英文时则不会出现乱码,于是猜想是否和中文与英文占用的字节有关系,实践得出结论,的确是字节搞的鬼, ...

  2. C#中StreamReader读取中文出现乱码

    有时在用C#中StreamReader读取中文时出现乱码 如: using System; using System.Collections.Generic; using System.Linq; u ...

  3. python存成csv文件时中文乱码_Python在向CSV文件写中文时乱码的处理办法

    前言 python2最大的坑在于中文编码问题,遇到中文报错首先加u,再各种encode.decode. 当list.tuple.dict里面有中文时,打印出来的是Unicode编码,这个是无解的. 对 ...

  4. split逗号分割中文出现乱码java_Java中URL传中文时乱码的问题解决方案

    前言 Java中URL传中文时乱码的问题相信不少朋友都遇到过,最近就遇到一个问题,就是在Action当中把一条中文信息绑定在URL的后面,ActionForward到别一个页面时,用reqeust.g ...

  5. Android读取中文文件乱码解决方法

    最近在做个MP3播放器,出现中文乱码问题,在网上找了很多解决办法,我整理了出现乱码的点和解决方案,拿出来和大家共享一下 1.读取中文文件乱码解决方法 package com.apj.conv; imp ...

  6. python json.dumps()有中文时乱码

    python json.dumps()有中文时乱码 json.dumps() 把 Python 字典类型转换为 JSON 对象 import jsondata = {'a': 'adv. 如同,像-- ...

  7. html调用外部js文件乱码,引用的js文件有中文时乱码

    Javascript 代码比较多时,通常把代码保存到一个独立的 js 文件中,这样不但利于减少 html 文件长度好布局修改,而且利于搜索引擎蜘蛛抓取.把 Javascript 代码放到 js 文件后 ...

  8. EXE4J   解决生成文件时或者读取文件时乱码

    EXE4J   解决生成.文件时或者读取文件时乱码问题一定要添加:VM Parameters:-Dfile.encoding=utf-8 下载链接:https://download.csdn.net/ ...

  9. net2.0中使用Cookie保存中文出现乱码的解决方法

    今天朋友注册会员账号使用了中文,登陆后发现用户名变成了乱码,后来发现是因为账号直接用cookie保存的,而cookie对中文不支持才导致乱码的情况.下面的代码是在网上找的 设置cookie时: Htt ...

最新文章

  1. 多核 CPU 和多个 CPU 有何区别
  2. linux 下Eclipse的安装
  3. 参考文献_参考文献:
  4. 开源项目中经常出现的七种错误
  5. HTML框架(Frames)
  6. linux 内存管理 ppt,Linux内存管理 Memory Manager.ppt
  7. python列表的特点_python基础(一)列表、集合和元组的基本特性
  8. 针对WEB前端新人的前端知识体系
  9. 告别写笔记,AI 实时转写黑科技来了!
  10. f2fs系列之二: 重要的数据结构
  11. Python图片添加好看的中文字体并根据图片动态改变文字大小
  12. 鼎捷易助8.0ERP系统制造业ERP系统介绍
  13. 高手UI设计师干货总结分享品牌LOGO设计的过程要求及方法
  14. 新媒体运营:23种免费获取流量的运营套路 ,你知道几种? 黎想
  15. python第五章总结
  16. 什么是散列表(Hash Table)
  17. 如果早晚都要死去,为什么还要活着?
  18. C++ 在图片上打印文字并保存图片
  19. 2018 Google I/O 中最重要的十项更新
  20. 高频交易系统性能应该从哪些方面优化?

热门文章

  1. 未来教育计算机二级01为法律一班,2019年3月计算机二级MSOffice提分试题及答案012...
  2. 回文数Python解法
  3. 小米笔记本air无法充电_惠普笔记本电池无法充电问题的解决方法
  4. 数据仓库工具箱:维度建模权威指南3
  5. html worker api,worker_threads 工作线程
  6. matlab平面抛射方程,MATLAB 数学实验 第七章 微分方程与计算机模拟 PPT注记
  7. 拉格朗日插值的优缺点_拉格朗日与牛顿插值法的比较
  8. split逗号分割中文出现乱码java_Java中URL传中文时乱码的问题解决方案
  9. 嵌入式工程师最后都选择了什么职位?
  10. 砰的一声,实验室又炸鸡了