2011-07-14 93 views
2

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

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

如果能够加密特殊字符就好了......目前,我正在加密字符串,然后我使用base 64字符串编码并替换了一些字符,如“=” “,”+“和”/“。虽然这工作,它似乎不是一个优雅的解决方案...

有没有更好的方法?

回答

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); 
相关问题