2011-07-14 49 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); 
相關問題