加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

加密 – 如何在C#3.0中以简单的方式加密cookie内容?

发布时间:2020-12-15 04:26:03 所属栏目:百科 来源:网络整理
导读:如何以直接和简单的方式加密cookie? 谢谢!! 解决方法 你可能不应该这样做.如果cookie是敏感的,则仅将其存储在服务器上. 如果你真的需要,有很多方法可以做到.首先,您需要将明文转换为字节数组,如下所示: var plainBytes = Encoding.UTF8.GetBytes(plainte
如何以直接和简单的方式加密cookie?

谢谢!!

解决方法

你可能不应该这样做.如果cookie是敏感的,则仅将其存储在服务器上.

如果你真的需要,有很多方法可以做到.首先,您需要将明文转换为字节数组,如下所示:

var plainBytes = Encoding.UTF8.GetBytes(plaintext);

如果你确定你的明文永远不会使用Unicode,你可以改用Encoding.ASCII;这将导致更小的cookie).

然后,您将需要加密它.最简单的方法是使用DPAPI,就像这样. (首先,添加对System.Security.dll的引用).请注意,这不适用于服务器场.

var encryptedBytes = ProtectedData.Protect(plainBytes,null,DataProtectionScope.CurrentUser);

最后,您需要将其转换回文本,以便将其放入cookie中.这最好在Base64中完成,如下所示:

Response.AddCookie("MyEncryptedCookie",Convert.ToBase64String(encryptedBytes));

要解密cookie,您需要撤消这些步骤,如下所示:

var encryptedBytes = Convert.FromBase64String(Request.Cookies["MyEncryptedCookie"].Value);
var decryptedBytes = ProtectedData.Unprotect(encryptedBytes,DataProtectionScope.CurrentUser);
var plaintext = Encoding.UTF8.GetString(decryptedBytes);

请注意,即使对于小型明文,cookie也会非常大.

如果要在服务器场上使用它,可以使用AES;看看System.Security.Cryptography.RijndaelManaged.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读