项目传递参数的时候想把参数值进行加密,如下:
源地址
newsedit.aspx?id=1
规则 news-edit-{id} 对应 newsedit.aspx
伪静态地址
http://www.xxxx.com/news-edit-1
如上这样的url,最后的1表示的是参数植,想把这个参数植进行加密,
http://www.xxxx.com/news-edit-xxxxxxxxxxxx 类似于这样的。格式。
考虑使用base64进行编码下,但是编码后可能会产生“/”,“+”这样的符号。会导致伪静态失效。
后面试着想把 “/”,“+”符号替换掉,考虑到要保持url的美观,就打算替换成“-”,“_"这两个字符,问题又来了,按我上面的配置伪静态配置替换成”-“或”_“ 又会出问题。各位朋友有没有什么好的建议。
还是在后台把id和用户做下权限判断吧,我感觉你加密了也是起不到你想要的作用的
后台已经做了权限验证了。只是想在进行一层加密。加深一道防护措施。
@yzy: base64一看就破,加了和没加效果一样,还是说你还要盐化一下,我觉得什么都不加最好看了
@刘宏玺: AES 加密也可以。这个加密出来也会存在/ = + 这类字符,不是很好处理。感觉
没那么复杂,把加密后的字节数组用 HEX 编码就行了。
把加密后的字符串再进行HttpUtility.UrlEncode()一下就可以了
DES加密解密 +编码后,有特殊字符也没问题了,除非被拿到可以key,要不一般是没问题的