译:在ASP.NET中如何对cookies进行加密和解密
2015-02-05 10:58
393 查看
译文地址: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进行加密和解密来达到一定的安全性。本文中我们将使用"
源码设计:
代码的实际操作:
使用命名空间:
解密:
输出:
源代码: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),可以是字符串类型的值。我们需要通过相同的目的值来对值进行加保护和解保护。
源码设计:
<div> <asp:TextBox ID="txtvalue" runat="server" placeholder="Enter Some Text" Width="250"> </asp:TextBox><br /> <asp:Label runat="server" ID="lblmsg" ForeColor="Green" Font-Bold="true"></asp:Label><br /> <asp:Button ID="btnEncrypt" runat="server" Text="Encrypt" OnClick="btnEncrypt_Click" /> <asp:Button ID="btnDecrypt" runat="server" Text="Decrypt" OnClick="btnDecrypt_Click" Style="height: 26px" /> </div>
代码的实际操作:
使用命名空间:
//using System.Text; //using System.Web.Security; protected void btnEncrypt_Click(object sender, EventArgs e) { var cookieText = Encoding.UTF8.GetBytes(txtvalue.Text); var encryptedValue = Convert.ToBase64String(MachineKey.Protect(cookieText, "ProtectCookie")); //--- Create cookie object and pass name of the cookie and value to be stored. HttpCookie cookieObject = new HttpCookie("NameOfCookie", encryptedValue); //---- Set expiry time of cookie. cookieObject.Expires.AddDays(5); //---- Add cookie to cookie collection. Response.Cookies.Add(cookieObject); lblmsg.Text = encryptedValue; } protected void btnDecrypt_Click(object sender, EventArgs e) { var bytes = Convert.FromBase64String(Request.Cookies["NameOfCookie"].Value); var output = MachineKey.Unprotect(bytes, "ProtectCookie"); string result = Encoding.UTF8.GetString(output); lblmsg.Text = result; }
ASP.NET 4.0中:
加密:var plaintextBytes = Encoding.UTF8.GetBytes("Jitendra Gangwar"); var encryptedValue = MachineKey.Encode(plaintextBytes, MachineKeyProtection.All); Response.Write(encryptedValue.ToString());
解密:
var decryptedBytes = MachineKey.Decode(encryptedValue, MachineKeyProtection.All); var decryptedValue = Encoding.UTF8.GetString(decryptedBytes); Response.Write(decryptedValue);
输出:
相关文章推荐
- 在winform中进行RSA加密,在asp.net site中解密 "不正确的数据”
- [愚翁专栏]如何使用Base64进行加密和解密
- 如何使用Base64进行加密和解密
- ASP.NET如何进行性能优化的问题,看一老兄的建议!【转】
- [转载]如何加密ASP.NET配置数据[]
- ASP.NET如何进行性能优化问题
- ASP.NET 程序安全性 (一) web.config加密与解密
- ASP.NET数据库连接字符串的加密与解密
- [代码示例]如何在ASP.NET中获取随机生成的cookie加密与验证密钥
- asp.net中利用加密盐进行加密字符串
- 如何在ASP.NET中获取随机生成的cookie加密与验证密钥
- 如何使用 ASP.NET 实用工具加密凭据和会话状态连接字符串
- 关于如何从多个项目创建 ASP.NET 应用程序以进行组开发问题
- asp.net中对字符的加密和解密
- NET下对二进制文件进行加密解密(C#)
- 如何在ASP.NET中获取随机生成的cookie加密与验证密钥
- 如何用ASP.net将参数进行Post提交
- 如何从多个项目创建 ASP.NET 应用程序以进行组开发(转贴)
- 使用C#+ASP.NET来进行RSA(非对称)加密.
- ASP.NET 2.0中,对网站配置文件(web.cofig)进行加密(摘)