C#中cookie读写加密中文字符

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 代码 //加密  CookiesResponse.Cookies["askCRM"]["USERID"] = Tools.Encrypt(strUserName.Trim(), Tools.myKey);//解密string strUid = Request.
img_405b18b4b6584ae338e0f6ecaf736533.gif 代码
// 加密  Cookies
Response.Cookies[ " askCRM " ][ " USERID " =  Tools.Encrypt(strUserName.Trim(), Tools.myKey);
// 解密
string  strUid  =  Request.Cookies[ " askCRM " ][ " USERID " ];
strUid 
=  Tools.Decrypt(strUid, Tools.myKey);

加密解密 掉用的方法
using  System;
using  System.Data;
using  System.Configuration;
using  System.Web;
using  System.Web.Security;
using  System.Web.UI;
using  System.Web.UI.WebControls;
using  System.Web.UI.WebControls.WebParts;
using  System.Web.UI.HtmlControls;
using  System.Security.Cryptography;
using  System.IO;
using  System.Text;

///   <summary>
///  Tools 的摘要说明


///   </summary>
public   class  Tools
{
   

    
///   <summary>
    
///  当前程序加密所使用的密钥

    
///   </summary>
     public   static   readonly   string  myKey  =   " q0m3sd8l " ;

    
#region  加密方法
    
///   <summary>
    
///  加密方法
    
///   </summary>
    
///   <param name="pToEncrypt"> 需要加密字符串 </param>
    
///   <param name="sKey"> 密钥 </param>
    
///   <returns> 加密后的字符串 </returns>
     public   static   string  Encrypt( string  pToEncrypt,  string  sKey)
    {
        
try
        {
            DESCryptoServiceProvider des 
=   new  DESCryptoServiceProvider();
            
// 把字符串放到byte数组中


            
// 原来使用的UTF8编码,我改成Unicode编码了,不行
             byte [] inputByteArray  =  Encoding.Default.GetBytes(pToEncrypt);

            
// 建立加密对象的密钥和偏移量


            
// 使得输入密码必须输入英文文本
            des.Key  =  ASCIIEncoding.ASCII.GetBytes(sKey);
            des.IV 
=  ASCIIEncoding.ASCII.GetBytes(sKey);
            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();
        }
        
catch  (Exception ex)
        {
            JS.Alert(
" 写入配置信息失败,详细信息: "   +  ex.Message.Replace( " \r\n " "" ).Replace( " ' " "" ));
        }

        
return   "" ;
    }
    
#endregion

    
#region  解密方法
    
///   <summary>
    
///  解密方法
    
///   </summary>
    
///   <param name="pToDecrypt"> 需要解密的字符串 </param>
    
///   <param name="sKey"> 密匙 </param>
    
///   <returns> 解密后的字符串 </returns>
     public   static   string  Decrypt( string  pToDecrypt,  string  sKey)
    {
        
try
        {
            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());
        }
        
catch  (Exception ex)
        {
            JS.Alert(
" 读取配置信息失败,详细信息: "   +  ex.Message.Replace( " \r\n " "" ).Replace( " ' " "" ));
        }
        
return   "" ;
    }
    
#endregion
}

 

目录
相关文章
|
6月前
|
数据安全/隐私保护
18、cookie注入(base64加密)
18、cookie注入(base64加密)
55 0
|
1月前
|
存储 安全 算法
C#一分钟浅谈:数据加密与解密技术
【10月更文挑战第3天】在数字化时代,信息安全至关重要。数据加密作为保障信息不被未授权访问的有效手段,通过特定算法将明文转换为密文,确保即使数据被截获也难以解读。本文从基础概念入手,介绍C#中实现数据加密的方法,涵盖对称加密(如AES、DES)与非对称加密(如RSA),并通过具体示例代码演示如何使用`System.Security.Cryptography.Aes`类完成AES加密和解密过程。此外,还强调了密钥管理及安全策略的重要性。
47 4
|
1月前
|
JavaScript 数据安全/隐私保护
马蜂窝 cookie 加密(加速乐)
本文介绍了一次针对马蜂窝网站的逆向工程过程,旨在学习交流,不提供完整代码及敏感信息。文中详细描述了三次GET请求的过程,通过抓包工具分析了请求头和响应内容,并逐步解析了`cookie`参数的生成方法。最终通过携带特定`cookie`成功获取页面内容。严禁将本文内容用于非法或商业用途,违者自行承担一切后果。未经许可不得转载或修改后传播。
81 0
|
3月前
|
Java C# 数据安全/隐私保护
如何 使 Java、C# md5 加密的值保持一致
如何 使 Java、C# md5 加密的值保持一致
44 0
|
3月前
|
C# 图形学 数据安全/隐私保护
Unity数据加密☀️ 二、使用Rider将C#代码生成DLL文件
Unity数据加密☀️ 二、使用Rider将C#代码生成DLL文件
|
3月前
|
数据采集 JavaScript 前端开发
同花顺股票数据逆向:Cookie加密和Hook注入
同花顺股票数据逆向:Cookie加密和Hook注入
197 0
|
5月前
|
Java C# 数据安全/隐私保护
|
5月前
|
C#
【C#】C#读写Excel文件
【C#】C#读写Excel文件
127 1
|
5月前
|
Java BI C#
技术笔记:SM4加密算法实现Java和C#相互加密解密
技术笔记:SM4加密算法实现Java和C#相互加密解密
87 0
|
6月前
|
存储 安全 网络安全
C#编程的安全性与加密技术
【4月更文挑战第21天】C#在.NET框架支持下,以其面向对象和高级特性成为安全软件开发的利器。本文探讨C#在安全加密领域的应用,包括使用System.Security.Cryptography库实现加密算法,利用SSL/TLS保障网络传输安全,进行身份验证,并强调编写安全代码的重要性。实际案例涵盖在线支付、企业应用和文件加密,展示了C#在应对安全挑战的同时,不断拓展其在该领域的潜力和未来前景。
277 5