首页 新闻 会员 周边 捐助

URL传递的敏感参数用哪种方式比较好(DES的Base-64 总是有错误)?

-1
悬赏园豆:15 [待解决问题]

如题,敏感参数需要加密且可逆!

我现在的项目需要通过e-mail发送url,我之前用DES加密并通过UrlEncode进行编码,自己通过点击邮件的网址并打开,可以正常解析url并解开密码,没有任何错误,可是后台却接收到很多异常(我捕捉这个解密过程并产生错误日志):

=================================
比如url为:/login?ekey=cDn/vx7prYqoK4ZcvLsnTbdVIAiXx+27SCqW1q1rbSKLaNozphXhJg==
异常信息为:
System.FormatException: Base-64 字符数组的无效长度。
=================================

实在不明白为什么会这样(猜测可能是邮件客户端或接收邮件的网站不同,我自己测试了foxmail,163,sohu和QQ等邮局都是好的),请大家帮忙分析或给出更好的加解密方案,谢谢!

有容乃大的主页 有容乃大 | 初学一级 | 园豆:5
提问于:2010-11-22 09:53
< >
分享
所有回答(3)
0

个人建议,把 ekey 参数的值记录下来,看看到底是哪个字符串出错了,然后同原始Url中的字符串作个比较,看是否一致.

Launcher | 园豆:45050 (高人七级) | 2010-11-22 10:04
0

因为base64里有=和/这两个字符吧,需要转义一下

Gray Zhang | 园豆:17610 (专家六级) | 2010-11-22 10:11
通过UrlEncode编码了
支持(0) 反对(0) 有容乃大 | 园豆:5 (初学一级) | 2010-11-22 13:23
0

Http.Utility.UrlEncode可以用不?

沉默的糕点 | 园豆:1786 (小虾三级) | 2010-11-22 10:25
当然可以
支持(0) 反对(0) 有容乃大 | 园豆:5 (初学一级) | 2010-11-22 13:23
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册