对Cookie的加密和编码

时间:2011-07-14 22:05:46

标签: c# encryption encoding

我有一个字符串,我想用AES算法加密。然后我想将结果存储到Web浏览器中的cookie中。

AES加密的结果是字节数组。我想把它变成一个可以存储在cookie中的字符串。似乎编码都没有正常工作。

能够加密特殊字符也很好,比如ë...目前,我正在加密字符串,然后我使用base 64字符串编码并替换一些字符,例如“=” ,“+”和“/”。虽然这有效,但似乎不是一个优雅的解决方案...

有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

这是一种非常常见的做法。

以下类在省略填充的同时使用' - '和'_'包装所有这些。它比替换字符更有效,并且几乎和Convert.ToBase64String方法一样快:

http://csharptest.net/browse/src/Library/Formatting/Safe64Encoding.cs

用法示例:

byte[] data = new byte[10];
string encoded = Safe64Encoding.EncodeBytes(data);
...
data = Safe64Encoding.DecodeBytes(encoded);