我有一个字符串,我想用AES算法加密。然后我想将结果存储到Web浏览器中的cookie中。
AES加密的结果是字节数组。我想把它变成一个可以存储在cookie中的字符串。似乎编码都没有正常工作。
能够加密特殊字符也很好,比如ë...目前,我正在加密字符串,然后我使用base 64字符串编码并替换一些字符,例如“=” ,“+”和“/”。虽然这有效,但似乎不是一个优雅的解决方案...
有更好的方法吗?
答案 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);