cookie操作类(加密,获取,删除)

简介:
 

using System;
using System.IO;
using System.Text;
using System.Diagnostics;
using System.Web.Security;
using System.Security;
using System.Security.Cryptography;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace ASPNET3DBBook
{
 public class EncryptString
 {   ///定义64位和192位的Kev和IV
  private static byte[] Key64 = {42, 16, 93, 156, 78, 4, 218, 32};
  private static byte[] IV64  = {55, 103, 246, 79, 36, 99, 167, 3};
  private static byte[] Key192 = {42, 16, 93, 156, 78, 4, 218, 32,15, 167, 44, 80, 26, 250, 155, 112,2, 94, 11, 204, 119, 35, 184, 197};
  private static byte[] IV192  = {55, 103, 246, 79, 36, 99, 167, 3,42, 5, 62, 83, 184, 7, 209, 13,145, 23, 200, 58, 173, 10, 121, 222};

  /// <summary>
  /// 加密字符串
  /// </summary>
  /// <param name="valueString"></param>
  /// <returns></returns>
  public static String Encrypt(String valueString)
  {
   if(valueString != "")
   {   ///创建加密的provider
    DESCryptoServiceProvider desprovider = new DESCryptoServiceProvider();
    ///创建加密的流
    MemoryStream memoryStream = new MemoryStream();    
    CryptoStream cryptoStream = new CryptoStream(memoryStream,desprovider.CreateEncryptor

                               (Key64,IV64),CryptoStreamMode.Write);
    StreamWriter writerStream = new StreamWriter(cryptoStream);
    ///加密给定的字符串
    writerStream.Write(valueString);
    writerStream.Flush();
    cryptoStream.FlushFinalBlock();
    ///返回加密后的字符串
    memoryStream.Flush();
    return(Convert.ToBase64String(memoryStream.GetBuffer(),0,(int)memoryStream.Length));
   }
   return(null);
  }

  /// <summary>
  /// 解密字符串
  /// </summary>
  /// <param name="valueString"></param>
  /// <returns></returns>
  public static String Decrypt(String valueString)
  {
   if(valueString != "")
   {   ///创建解密的provider
    DESCryptoServiceProvider desprovider = new DESCryptoServiceProvider();
    byte[] buffer = Convert.FromBase64String(valueString);
    MemoryStream memoryStream = new MemoryStream();
    ///解密给定的字符串
    CryptoStream cryptoStream = new CryptoStream(memoryStream,desprovider.CreateEncryptor

                                (Key64,IV64),CryptoStreamMode.Read);
    StreamReader readerStream = new StreamReader(cryptoStream);
    return(readerStream.ReadToEnd());
   }
   return(null);
  }

  /// <summary>
  /// DES加密方法
  /// </summary>
  /// <param name="valueString"></param>
  /// <returns></returns>
  public static String EncryptTripleDES(String valueString)
  {
   if(valueString != "")
   {  

    ///创建加密的provider
    TripleDESCryptoServiceProvider triprovider = new TripleDESCryptoServiceProvider();
    ///创建加密的流
    MemoryStream memoryStream = new MemoryStream();
    CryptoStream cryptoStream = new CryptoStream(memoryStream,triprovider.CreateEncryptor

                               (Key192,IV192),CryptoStreamMode.Write);
    StreamWriter writerStream = new StreamWriter(cryptoStream);
    ///加密给定的字符串
    writerStream.Write(valueString);
    writerStream.Flush();
    cryptoStream.FlushFinalBlock();
    ///返回加密后的字符串
    memoryStream.Flush();
    return(Convert.ToBase64String(memoryStream.GetBuffer(),0,(int)memoryStream.Length));
   }
   return(null);
  }

  /// <summary>
  /// DES解密方法
  /// </summary>
  /// <param name="valueString"></param>
  /// <returns></returns>
  public static String DecryptTripleDES(String valueString)
  {
   if(valueString != "")
   {   ///创建加密的provider
    TripleDESCryptoServiceProvider triprovider = new TripleDESCryptoServiceProvider();
    ///创建加密的流
    byte[] buffer = Convert.FromBase64String(valueString);
    MemoryStream memoryStream = new MemoryStream();
    CryptoStream cryptoStream = new CryptoStream(memoryStream,triprovider.CreateEncryptor

                                (Key192,IV192),CryptoStreamMode.Read);
    StreamReader readerStream = new StreamReader(cryptoStream);
    return(readerStream.ReadToEnd());
   }
   return(null);
  }
 }

 public class CookieEncrypt
 {  
  /// <summary>
  /// 设置Cookie
  /// </summary>
  /// <param name="cookie"></param>
  public static void SetCookie(HttpCookie cookie)
  {
   HttpContext.Current.Response.Cookies.Set(cookie);
  }

  /// <summary>
  /// 设置Cookie
  /// </summary>
  /// <param name="key"></param>
  /// <param name="valueString"></param>
  public static void SetCookie(String key,String valueString)
  {   ///获取关键字和值
   key = HttpContext.Current.Server.UrlEncode(key);
   valueString = HttpContext.Current.Server.UrlEncode(valueString);
   ///设置Cookie
   HttpCookie cookie = new HttpCookie(key,valueString);
   SetCookie(cookie);
  }

  /// <summary>
  /// 设置Cookie
  /// </summary>
  /// <param name="key"></param>
  /// <param name="valueString"></param>
  /// <param name="expires"></param>
  public static void SetCookie(String key,String valueString,DateTime expires)
  {   ///获取关键字和值
   key = HttpContext.Current.Server.UrlEncode(key);
   valueString = HttpContext.Current.Server.UrlEncode(valueString);
   ///设置Cookie
   HttpCookie cookie = new HttpCookie(key,valueString);
   cookie.Expires = expires;
   SetCookie(cookie);
  }

  /// <summary>
  /// 设置使用DES方法加密之后的Cookie
  /// </summary>
  /// <param name="key"></param>
  /// <param name="valueString"></param>
  public static void SetTripleDESEncryptedCookie(String key,String valueString)
  {  

   ///获取关键字和值
   key = EncryptString.EncryptTripleDES(key);
   valueString = EncryptString.EncryptTripleDES(valueString);
   ///设置Cookie
   SetCookie(key,valueString);
  }

  /// <summary>
  /// 设置使用DES方法加密之后的Cookie
  /// </summary>
  /// <param name="key"></param>
  /// <param name="valueString"></param>
  /// <param name="expires"></param>
  public static void SetTripleDESEncryptedCookie(String key,String valueString,DateTime expires)
  {  

   ///获取关键字和值
   key = EncryptString.EncryptTripleDES(key);
   valueString = EncryptString.EncryptTripleDES(valueString);
   ///设置Cookie
   SetCookie(key,valueString,expires);
  }

  /// <summary>
  /// 设置加密之后的Cookie
  /// </summary>
  /// <param name="key"></param>
  /// <param name="valueString"></param>
  public static void SetEncryptedCookie(String key,String valueString)
  {   ///获取关键字和值
   key = EncryptString.Encrypt(key);
   valueString = EncryptString.Encrypt(valueString);
   ///设置Cookie
   SetCookie(key,valueString);
  }

  /// <summary>
  /// 设置加密之后的Cookie
  /// </summary>
  /// <param name="key"></param>
  /// <param name="valueString"></param>
  /// <param name="expires"></param>
  public static void SetEncryptedCookie(String key,String valueString,DateTime expires)
  {  

   ///获取关键字和值
   key = EncryptString.Encrypt(key);
   valueString = EncryptString.Encrypt(valueString);
   ///设置Cookie
   SetCookie(key,valueString,expires);
  }

  /// <summary>
  /// 获取DES方法加密之后的Cookie
  /// </summary>
  /// <param name="key"></param>
  /// <returns></returns>
  public static String GetTripleDESEncryptedCookieValue(String key)
  {  

   ///获取关键字和值
   key = EncryptString.EncryptTripleDES(key);
   String valueString = GetCookieValue(key);
   ///获取Cookie
   valueString = EncryptString.DecryptTripleDES(valueString);
   return(valueString);   
  }

  /// <summary>
  /// 获取DES方法加密之后的Cookie
  /// </summary>
  /// <param name="key"></param>
  /// <returns></returns>
  public static String GetEncryptedCookieValue(String key)
  {  

   ///获取关键字和值
   key = EncryptString.Encrypt(key);
   String valueString = GetCookieValue(key);
   ///获取Cookie
   valueString = EncryptString.Decrypt(valueString);
   return(valueString);   
  }

  /// <summary>
  /// 获取Cookie
  /// </summary>
  /// <param name="key"></param>
  /// <returns></returns>
  public static HttpCookie GetCookie(String key)
  {  

   ///获取关键字和值
   key = HttpContext.Current.Server.UrlEncode(key);
   ///获取Cookie
   return(HttpContext.Current.Request.Cookies.Get(key));
  }

  /// <summary>
  /// 获取Cookie
  /// </summary>
  /// <param name="key"></param>
  /// <returns></returns>
  public static String GetCookieValue(String key)
  {  

   ///获取关键字和值
   String valueString = GetCookie(key).Value;
   ///获取Cookie
   valueString = HttpContext.Current.Server.UrlDecode(valueString);
   return(valueString);
  }
 }
}

目录
相关文章
|
2月前
|
数据安全/隐私保护
18、cookie注入(base64加密)
18、cookie注入(base64加密)
31 0
|
11天前
|
存储 JavaScript 前端开发
JavaScript DOM 操作:解释一下 cookie、sessionStorage 和 localStorage 的区别。
Cookie是服务器发送至客户端的文本信息,会随每个请求发送回服务器,适合控制会话状态但可能暴露隐私。SessionStorage仅在当前会话中存储数据,关闭浏览器后清除,适合临时存储如登录状态。LocalStorage则持久保存数据,即使关闭浏览器也不会清除,适用于存储长期设置。三种方式各有侧重,应按需求选择。
15 0
|
2月前
|
SQL 分布式计算 DataWorks
MaxCompute确实支持对id_card_no进行加密和解密操作
【2月更文挑战第4天】MaxCompute确实支持对id_card_no进行加密和解密操作
27 12
|
2月前
|
数据安全/隐私保护
小课堂 -- cookie注入(base64加密)
小课堂 -- cookie注入(base64加密)
18 0
|
7月前
|
存储 JavaScript
js -cookie的操作
cookie是存储在客户端浏览器中的一段文本信息。
|
4月前
|
SQL 分布式计算 DataWorks
MaxCompute确实支持对id_card_no进行加密和解密操作
MaxCompute确实支持对id_card_no进行加密和解密操作
137 56
|
4月前
|
算法 Java 数据安全/隐私保护
Android App开发之利用JNI实现加密和解密操作实战(附源码 简单易懂)
Android App开发之利用JNI实现加密和解密操作实战(附源码 简单易懂)
76 0
|
4月前
|
存储 前端开发 Java
【源码共读】在前端如何操作 Cookie
【源码共读】在前端如何操作 Cookie
61 1
|
5月前
|
存储 JavaScript 前端开发
cookie相关操作
cookie相关操作
34 0
|
10月前
|
JavaScript 前端开发 Java
【JavaEE】使Cookie与Session失效-Servlet上传文件操作-优化表白墙
虽然Cookie和Session都是暂时存在的,不久就会被删掉,但是我们要退出登录的时候,就不能等待其自然消除了~
49 0