我很难为 ASP.NET 找到加密和解密方法。
我的网站上有一个按钮,可以重定向到下载页面,如下所示:
www.example.com/downloads/1/filename.jpg
其中1 = id。
我希望将id加密为以下内容:
www.example.com/downloads/k0sjD3ks0x/filename.jpg
我希望使用不使用* / = + 等特殊字符的加密来执行此操作,因为这些会“干扰”链接,并且会尝试导航到不会存在。
问题是几乎所有加密方法(除十六进制和MD5之外)都返回带有这些特殊字符的加密字符串。我不想使用十六进制,因为id为1将加密为32,我相信MD5无法解密(如果我错了,请纠正我)。
因此,如果有人知道没有特殊字符的加密或自己写了一个并愿意分享,我会很感激。
提前致谢。
答案 0 :(得分:2)
为什么不想使用十六进制?
如果id始终是密码,您知道32不是十进制32而是十六进制32。
将密码编码为十六进制。十六进制不包含特殊字符。
加密算法输出二进制。您需要将此二进制文件编码为字符串。使用什么加密算法并不重要,你只需要编码算法输出的二进制文件。
或者,url编码字符串密码:
System.Web.HttpUtility.UrlEncode("cryptogram with special chars");