如何在ASP.NET中加密和解密我的Cookie

时间:2016-02-20 09:13:06

标签: c# asp.net cookies encryption

Hello,因为标题说,我正在尝试将cookie传递给页面,但我需要加密它们并在特定页面(Home.aspx)上我需要解密它。任何人都知道怎么做?

我的代码到目前为止,Login.aspx:

    HttpCookie UserCookie = new HttpCookie("Login");
    UserCookie.Value = txtUsername.Text;
    UserCookie.Expires = DateTime.Now.AddHours(2);
    Response.Cookies.Add(UserCookie);

2 个答案:

答案 0 :(得分:6)

我不得不稍微改变LGSon的答案,这对我有用。

Convert.ToBase64String(MachineKey.Protect(Encoding.UTF8.GetBytes("your cookie value")))

Encoding.UTF8.GetString(MachineKey.Unprotect(Convert.FromBase64String("your cookie value")))

答案 1 :(得分:5)

您可以使用MachineKey.Protect / MachineKey.Unprotect

此示例代码还使用Base64转换,以避免Cookie值中的无效字符出现意外错误。

MachineKey.Protect(Encoding.UTF8.GetBytes(cookieValue), "an authentication token").FromBytesToBase64()

Encoding.UTF8.GetString(MachineKey.Unprotect(Request.Cookies(cookieName).Value.FromBase64ToBytes, "an authentication token"))

Src:https://msdn.microsoft.com/en-us/library/system.web.security.machinekey.protect(v=vs.110).aspx