惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The Hacker News
The Hacker News
D
Docker
GbyAI
GbyAI
Y
Y Combinator Blog
C
Check Point Blog
M
MIT News - Artificial intelligence
Martin Fowler
Martin Fowler
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Blog — PlanetScale
Blog — PlanetScale
P
Palo Alto Networks Blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
V
Vulnerabilities – Threatpost
I
InfoQ
Simon Willison's Weblog
Simon Willison's Weblog
博客园_首页
T
Threat Research - Cisco Blogs
J
Java Code Geeks
Hacker News - Newest:
Hacker News - Newest: "LLM"
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
The Register - Security
The Register - Security
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
阮一峰的网络日志
阮一峰的网络日志
O
OpenAI News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Recent Announcements
Recent Announcements
Forbes - Security
Forbes - Security
AWS News Blog
AWS News Blog
雷峰网
雷峰网
博客园 - 三生石上(FineUI控件)
S
Security Affairs
H
Heimdal Security Blog
Engineering at Meta
Engineering at Meta
T
Troy Hunt's Blog
T
Tenable Blog
MongoDB | Blog
MongoDB | Blog
H
Hacker News: Front Page
IT之家
IT之家
N
News and Events Feed by Topic
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
G
GRAHAM CLULEY
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V
Visual Studio Blog
S
Secure Thoughts
U
Unit 42
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
The Last Watchdog
The Last Watchdog
S
Security @ Cisco Blogs
NISL@THU
NISL@THU
T
The Blog of Author Tim Ferriss

博客园 - 夜飞

滚动DATAGRID数据 和股票一样滚动 asp.net(c#) datelist DataGrid 中截取字符串加"..." 和 鼠标放上去字符全部显示 - 夜飞 vs.2005 比较时间大小 可精确到秒 - 夜飞 VS.2005 子窗体提交数据刷新父窗体 GRIDVIEW 子窗体(2) VS.2005 子窗体提交数据刷新父窗体 GRIDVIEW 父窗体(1) - 夜飞 gridview中加弹出窗口用例 创建数据库连接对象 ASP.NET程序员笔试最常见问题 海量数据库的查询优化及分页算法方案 表格列头加菜单(datagrid) 实现无刷新DropdownList联动效果 实现的不让同一个用户登陆 GridView控件修改、删除示例(修改含有DropDownList控件) asp.net打印 Web打印控制技术的几种方案: ASP.NET中弹出窗口技术 在asp.net中读取XML文件信息的4种方法 Asp.Net 动态生成验证码 ----- 把DataGrid1的一列的统计显示在页脚
vs.2005 中对COOKIES 加密解密 例子 - 夜飞
夜飞 · 2006-07-14 · via 博客园 - 夜飞

加密  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
}