use*_*838 4 .net c# encryption asp.net-mvc-3
我有一个非常简单的加密类,使用tripleDES加密我网站上特定页面的查询字符串.我这样做是为了防止人们根据我们的数据库ID顺序抓取页面.
无论如何,我已经使用过 这种加密方法
但是,它包含3d%一些special characters不应该在查询字符串中的其他内容,并且出于安全目的而被Url Scan拒绝.=生成的实际加密字符串中有一个.我并不想改变URL扫描,但我不知道是否有一种方法可以限制的加密字符的tripleDES crypto provider什么的.我对加密几乎一无所知,我实际上只是混淆了查询字符串,因此我对其对查询字符串加密的其他选项持开放态度.
您已链接使用的方法Base64编码的加密的字节数组转换-这可能有各种在它"不可打印"的字节-成将只包含一种形式A- ,Z- a,z- 0,,9 和.+/=
但是,最后3个不适用于URL.
您可以String.Replace在Base64字符串上执行简单操作,将这些字符替换为URL安全字符,例如+=> -,/=> _和==> ..你甚至可以完全放弃它=,因为它们只是填充字符.(制作的前两个替换和丢弃=是由RFC3548建议).
然后,当您想要解密字符串时,只需反转此替换.如果=完全删除,请添加,=直到字符串的长度为4的倍数.
| 归档时间: |
|
| 查看次数: |
5428 次 |
| 最近记录: |