我一直在使用對稱(Rijndael)密鑰算法(http://www.obviex.com/samples/Encryption.aspx)來加密ID。然後我對URL的加密版本進行URL編碼並將其傳遞到查詢字符串中。當我從查詢字符串中檢索ID時,我首先將它解碼並解密。Web應用程序的加密算法
最近出現了一個問題。如果加密的ID同時具有「空格」和「+」(例如「abc ef + g」),則URL編碼將所有「空格」更改爲「+」。這是我對URL進行URL解碼時遇到的問題,不知道哪個「+」是「+」,哪個「+」是「空格」。
如果有一個選項可以選擇輸出字符集只是字母表使用AZ)?或者如果有任何其他2路加密算法,有我的選擇輸出字符集的選項?
或者我猜我最後的選擇是手動替換加號中的「+」 like「_SPACE_」
謝謝
我使用HttpUtility.UrlEncode()來urlencode加密的ID。如果我的加密ID是「abc e +」,則URL編碼ID是「abc + e +」。我以後如何使用URLdecode「abc + e +」? – David 2009-08-19 14:18:04
您的UrlEncode()錯誤。它應該輸出「abc + e%2b」。 +應該始終編碼。另外,你不應該在ID中使用空格。它應該是Base64編碼的字符串。 – 2009-08-19 14:33:05
是的,你是對的。事實證明,問題是我得到的查詢字符串與HttpUtility.ParseQueryString(),它已經urldecodes querstring。我也叫HttpUtility.URLDecode()。所以我結束了兩次urldecoding。 – David 2009-08-19 14:54:38