[英]Restrict Characters used in Encryption
我有一個非常簡單的加密類,使用tripleDES加密我網站上特定頁面的查詢字符串。 我這樣做是為了防止人們根據我們的數據庫ID順序抓取頁面。
無論如何,我已經使用過這種加密方法
但是,它包含3d%
和一些其他special characters
,這些special characters
不應出現在查詢字符串中,並且出於安全考慮而被Url Scan拒絕。 在生成的實際加密字符串中有一個=
。 我不想更改URL掃描,但我想知道是否有辦法限制 tripleDES crypto provider
或其他東西的加密字符 。 我對加密幾乎一無所知,我實際上只是混淆了查詢字符串,因此我對其對查詢字符串加密的其他選項持開放態度。
您鏈接的方法使用Base64編碼將加密的字節數組(可能包含各種“不可打印”字節)轉換為僅包含A
- Z
, a
- z
, 0
- 9
, +
, /
和=
。
但是,最后3個不適用於URL。
您可以在Base64字符串上執行簡單的String.Replace
,將這些字符替換為URL安全字符,例如+
=> -
, /
=> _
和=
=> .
。 您甚至可以完全刪除=
,因為它們只是填充字符。 ( RFC3548建議進行前兩次替換並刪除=
。)
然后,當您想要解密字符串時,只需反轉此替換。 如果完全刪除=
,則添加=
直到字符串的長度為4的倍數。
如果你不知道你在做什么(即使你這樣做),也不應該搞亂加密。 相反,請按原樣使用加密,並對結果進行UrlEncode 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.