cookie文件如何解密

cookie文件如何解密,第1张

Cookie中的内容大多数经过了加密处理,因此在我们看来只是一些毫无意义的字母数字组合,只有服务器的CGI处理程序才知道它们真正的含义。通过一些软件我们可以查看到更多的内容,巧伍使用Cookie Pal软件查看到的Cookie信息,如图2所示。它为我们提供了Server、Expires、Name、Value等选项的内容。其中,Server 是存储Cookie的网站,Expires记录了Cookie的时间和生命期,Name和value字段则是具体的数据。

Cookie是当你浏览某网站时,网站存储在你机器上的一个小文本文件,它记录了你的用户ID,密码、浏览过的网页、停留的时间等信息,当你再次来到该网站时,网站通过读取Cookie,得知你的相关信息,就可以做出相应的动作,如在页面显示欢迎你的标语,或者让你不用输入ID、密码就直接登录等等。你可以在IE的“工具/Internet选项”的“常规”选项卡中,选择“设置/查看文件”,查看所有保存到你电脑里的Cookie。这些文件通常是以user@domain格式命名的,user是你的本地用户名,domain是所访问的网站的域名。如果你使用NetsCape浏览器,则存放在“C:\PROGRAMFILES\NETSCAPE\USERS\”里面,与IE不同的是,NETSCAPE是使用一个Cookie 文件记录所有网站的Cookies。

为了保证上网安全我们需要对Cookie进行适当设置。打开“工具/Internet选项”中的“隐私”选项卡(注意该设置只在IE6.0中存在,其他版本IE可以在“工具/Internet选项”的“安全”标签中单击“自定义级别”按钮,进行简单调整),调整Cookie的安全级别。通常情况,可以将滑块调整到“中高答州”或者“高”的位置。多数的论坛站点需要使用Cookie信息,如果你从来不去这些地方,可以将安全级调到“阻止所有 Cookies”。如果只是为了禁止个别网站的Cookie,可以单击“编辑”按钮,将要屏蔽的网站添加到列表中。在“高级”按钮选项中,你可以对第一方 Cookie和第三方的Cookie进行设置,第一方Cookie是你正在浏览的网站的Cookie,第三方Cookie非正在浏览的网站发给你的 Cookie,通常要对第三方Cookie选择“拒绝”,如图1。你如果需要保存Cookie,可以使用IE的“导入孝举或导出”功能,打开“文件/导入导出”,按提示 *** 作即可。

这个是有通过密匙加密的,密匙一般配置在弯晌雹components->request->cookieValidationKey,没有密匙埋帆解密。。谨森。就不在我们研究范围了。

至于解密的过程你可以查看yii\web\Request下的getCookies方法,看他怎么解密的。

using System

using System.Collections.Generic

using System.Text

using System.Security.Cryptography

using System.IO

namespace clsModel

{

class clsModel

{

public static string UserMd5(string str)

{

string cl = str

string pwd = ""

MD5 md5 = MD5.Create()//实例化一个md5对像

// 加密后是一个字节类型的数组,这里要注意编码UTF8/Unicode等的选择

byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(cl))

// 通过使返圆用循环,将字节类型的数组转换为字符串,此字符串是常规字符格式化所得

for (int i = 0i <s.Lengthi++)

{

// 将得到的字符串使用十六进制类型格式。格式后的字符是小肆仔写的字母,如果使用大裂世汪写(X)则格式后的字符是大写字符

pwd = pwd + s[i].ToString("x").PadLeft(2, '0')

}

return pwd

}

private static byte[] IV = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF }

public static String Encrypt(String Key, String str)

{

byte[] bKey = Encoding.UTF8.GetBytes(Key.Substring(0, 8))

byte[] bIV = IV

byte[] bStr = Encoding.UTF8.GetBytes(str)

try

{

DESCryptoServiceProvider desc = new DESCryptoServiceProvider()

MemoryStream mStream = new MemoryStream()

CryptoStream cStream = new CryptoStream(mStream, desc.CreateEncryptor(bKey, bIV), CryptoStreamMode.Write)

cStream.Write(bStr, 0, bStr.Length)

cStream.FlushFinalBlock()

return Convert.ToBase64String(mStream.ToArray())

}

catch

{

return string.Empty

}

}

public static String Decrypt(String Key, String DecryptStr)

{

try

{

byte[] bKey = Encoding.UTF8.GetBytes(Key.Substring(0, 8))

byte[] bIV = IV

byte[] bStr = Convert.FromBase64String(DecryptStr)

DESCryptoServiceProvider desc = new DESCryptoServiceProvider()

MemoryStream mStream = new MemoryStream()

CryptoStream cStream = new CryptoStream(mStream, desc.CreateDecryptor(bKey, bIV), CryptoStreamMode.Write)

cStream.Write(bStr, 0, bStr.Length)

cStream.FlushFinalBlock()

return Encoding.UTF8.GetString(mStream.ToArray())

}

catch

{

return string.Empty

}

}

}

}

完整的加密解密类...直接引用就可以,方法中的参数Key为密码,可以自己指定...

Encrypt加密的方法

Decrypt解密的方法


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8207891.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存