码迷,mamicode.com
首页 > Web开发 > 详细

译:在ASP.NET中如何对cookies进行加密和解密

时间:2015-02-05 13:00:16      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:

译文地址:http://www.codeproject.com/Tips/872826/Encrypt-Decrypt-Cookies-in-ASP-NET

源代码:http://files.cnblogs.com/files/yplong/ShanuBasicCSharpOOPConceptV1.4.zip

简介:

在这个话题中,我将说明如何加密和解密cookies的值。cookies是一个在浏览器端存储值的text文件。作为cookies存储在一个简单的text文件中,很容易被读取和修改cookies内容。

然而你可以对cookies进行加密和解密来达到一定的安全性。本文中我们将使用"MachineKey.Protect” 和 “MachineKey.Unprotect”两个方法来加密和解密。

MachineKey.Protect() MachineKey.Unprotect() 是应用在ASP.NET4.5中。这两个方法需要2个参数,第一个参数就是要进行加密和解密的内容文件的字节形式,第二个参数就是目的。目的就像一个键(key),可以是字符串类型的值。我们需要通过相同的目的值来对值进行加保护和解保护。

源码设计:

 

 1 <div>
 2     <asp:TextBox ID="txtvalue" runat="server" 
 3     placeholder="Enter Some Text" Width="250">
 4     </asp:TextBox><br />
 5     <asp:Label runat="server" ID="lblmsg" ForeColor="Green" 
 6     Font-Bold="true"></asp:Label><br />
 7     <asp:Button ID="btnEncrypt"
 8                 runat="server" Text="Encrypt" 
 9                 OnClick="btnEncrypt_Click" />  
10     <asp:Button ID="btnDecrypt" runat="server" Text="Decrypt" 
11     OnClick="btnDecrypt_Click" Style="height: 26px" />
12 </div>

 

代码的实际操作:
使用命名空间:

 

 1 //using System.Text;
 2 //using System.Web.Security;
 3 
 4 protected void btnEncrypt_Click(object sender, EventArgs e)
 5     {
 6         var cookieText = Encoding.UTF8.GetBytes(txtvalue.Text);
 7         var encryptedValue = Convert.ToBase64String(MachineKey.Protect(cookieText, "ProtectCookie"));
 8 
 9         //--- Create cookie object and pass name of the cookie and value to be stored.
10         HttpCookie cookieObject = new HttpCookie("NameOfCookie", encryptedValue);
11 
12         //---- Set expiry time of cookie.
13         cookieObject.Expires.AddDays(5);
14 
15         //---- Add cookie to cookie collection.
16         Response.Cookies.Add(cookieObject);
17         lblmsg.Text = encryptedValue;
18     }
19     protected void btnDecrypt_Click(object sender, EventArgs e)
20     {
21         var bytes = Convert.FromBase64String(Request.Cookies["NameOfCookie"].Value);
22         var output = MachineKey.Unprotect(bytes, "ProtectCookie");
23         string result = Encoding.UTF8.GetString(output);
24         lblmsg.Text = result;
25     }

 ASP.NET 4.0中:

加密:

1 var plaintextBytes = Encoding.UTF8.GetBytes("Jitendra Gangwar");
2 var encryptedValue = MachineKey.Encode(plaintextBytes, MachineKeyProtection.All);
3 Response.Write(encryptedValue.ToString());

解密:

1 var decryptedBytes = MachineKey.Decode(encryptedValue, MachineKeyProtection.All);
2 var decryptedValue = Encoding.UTF8.GetString(decryptedBytes);
3 Response.Write(decryptedValue);

输出:

技术分享

 

译:在ASP.NET中如何对cookies进行加密和解密

标签:

原文地址:http://www.cnblogs.com/yplong/p/4274229.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!