簡體   English   中英

限制加密中使用的字符

[英]Restrict Characters used in Encryption

我有一個非常簡單的加密類,使用tripleDES加密我網站上特定頁面的查詢字符串。 我這樣做是為了防止人們根據我們的數據庫ID順序抓取頁面。

無論如何,我已經使用過這種加密方法

但是,它包含3d%和一些其他special characters ,這些special characters不應出現在查詢字符串中,並且出於安全考慮而被Url Scan拒絕。 在生成的實際加密字符串中有一個= 我不想更改URL掃描,但我想知道是否有辦法限制 tripleDES crypto provider或其他東西的加密字符 我對加密幾乎一無所知,我實際上只是混淆了查詢字符串,因此我對其對查詢字符串加密的其他選項持開放態度。

您鏈接的方法使用Base64編碼將加密的字節數組(可能包含各種“不可打印”字節)轉換為僅包含A - Za - z0 - 9+/=

但是,最后3個不適用於URL。

您可以在Base64字符串上執行簡單的String.Replace ,將這些字符替換為URL安全字符,例如+ => -/ => _= => . 您甚至可以完全刪除= ,因為它們只是填充字符。 RFC3548建議進行前兩次替換並刪除= 。)

然后,當您想要解密字符串時,只需反轉此替換。 如果完全刪除= ,則添加=直到字符串的長度為4的倍數。

如果你不知道你在做什么(即使你這樣做),也不應該搞亂加密。 相反,請按原樣使用加密,並對結果進行UrlEncode

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM