关于URL加密的问题

panzi667 2009-09-25 08:38:33
我想把http://www.baidu.com/hi/down/abcde.rar加密成http://alsdkasdflasdkfsdksadda,
于是我用DES加密,但是加密以后浏览器老是报Bad Request (Invalid URL)错误,现在有两个问题,只有解决一个就可以了
1,URL有长度限制么?如果有那么超长的URL怎么处理?
2,有这么一个字符串函数么?加密以后其长度不变
...全文
3851 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhouguidi 2009-09-25
  • 打赏
  • 举报
回复
很好很强大
panzi667 2009-09-25
  • 打赏
  • 举报
回复
http://www.fee123.com 这个网站就是我用这个方式来处理的,大家看看,千万不要攻击哦,谢谢!
panzi667 2009-09-25
  • 打赏
  • 举报
回复
问题找到了,是因为服务器是把aaaaaaaaaaaaaaa.rar作为一个文件来处理,一但他的长度超过了245就会出现Bad Request (Invalid URL)的错误,这个跟URL的长度是没有关系的。
我的处理方式:
在重写的时候,用到两个参数,在接收的时候再合并到一起,这样就避免文件名过程的现象了,
这个问题从昨天搞到现在才搞定,呵呵
http://www.xxx.com/down/p1=aaaaaaaaaaaaaa&p2=aaaaaaaaaaaaaa.rar
24K純帥 2009-09-25
  • 打赏
  • 举报
回复
我是来学习的。。
panzi667 2009-09-25
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 ck11926375 的回复:]
加密参数

[/Quote]

我现在是用的加密参数,如果用明文的话,是可以的
ovenj 2009-09-25
  • 打赏
  • 举报
回复
实在不行建议楼主用session
ck11926375 2009-09-25
  • 打赏
  • 举报
回复
加密参数
liffe 2009-09-25
  • 打赏
  • 举报
回复
我是不懂,帮顶
panzi667 2009-09-25
  • 打赏
  • 举报
回复
还有一个奇怪的事情就是,我在本机开发的时候,怎么调试都没有问题,但是一上传到服务器就出现这个问题了,同样做URL重写的另外一个没有问题
panzi667 2009-09-25
  • 打赏
  • 举报
回复
不好意思,是我没有描述清楚

在重写的时候
http://www.xxx.com/down/aaaaaaaaaaaaaaaaaaaaaaaaaaaa.rar
自动变为
http://www.xxx.com/down.asp?cs=aaaaaaaaaaaaaaaaaaaaaaaaaaaa

当aaaaaaaaaaaaaaaaaaaaaaaaaa的参数长度比较小的时候没有问题,但是一但很长了,就出现上面说的那个问题Bad Request (Invalid URL)
ovenj 2009-09-25
  • 打赏
  • 举报
回复
是呀,加密的话只能加密参数,加密所有的域名,浏览器肯定找不到的。

而且加密参数的算法要可逆,不然就得不到参数了。

微软 Internet Explorer:
微软帮助网站上说IE7之前(包括IE7)的浏览器,对URL的最大长度限制是2,083个字符。

Firefox:
对于Firefox 1.5.x,地址栏能显示的URL最大长度是65,536个字符,但实际上有效的URL最大长度不少于100,000个字符。


对于Firefox 3.0.5,mozilla官方论坛上有人测试其URL长度限制为65,000个字符。
也有人说Firefox可以支持URL高达2Gbyte的长度(参考),在data URL中可以运用到这样大数据量的URL。data URL是一种URL本身包含了实际数据的URL,比如一个图片、一个HTML网页或者全部的数据、代码等等。仅有Firefox支持data URL。


data URL示例:
<html>
<body>
<a href="data:text/html;charset=utf-8,%3C!DOCTYPE%20HTML%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20HTML%204.0%2F%2FEN%22%3E%0D%0A%3Chtml%20lang%3D%22en%22%3E%0D%0A%20%3Chead%3E%0D%0A%20%20%3Ctitle%3ETest%3C%2Ftitle%3E%0D%0A%20%20%3Cstyle%20type%3D%22text%2Fcss%22%3E%0D%0A%20%20%3C%2Fstyle%3E%0D%0A%20%3C%2Fhead%3E%0D%0A%20%3Cbody%3E%0D%0A%20%20%3Cp%3EThis%20is%20a%20data%20URL%3C%2Fp%3E%0D%0A%20%3C%2Fbody%3E%0D%0A%3C%2Fhtml%3E%0D%0A">This is a test</a>
</body>
</html



Safari:
Safari最少支持80,000个字符长度的URL。



Opera:
Opera官方网站上说,Opera并没有强制限制URL的长度。
网友测试Opera 9支持最少190,000个字都长度的URL,并且Opera 9的地址栏可以显示、编辑、复制和粘贴完整的URL串。



本文参考:
【1】http://www.boutell.com/newfaq/misc/urllength.html
【2】http://support.mozilla.com/tiki-view_forum_thread.php?comments_parentId=153230&forumId=1
【3】http://forums.mozillazine.org/viewtopic.php?f=7&t=322458&start=0&st=0&sk=t&sd=a
【4】http://support.microsoft.com/kb/q208427/
【5】http://www.opera.com/support/kb/view/387/


ViewStates 2009-09-25
  • 打赏
  • 举报
回复
你URL再怎么加密重写但是最基本的域名应该还是要保留的吧。不能把根都切了那还搞个球啊。
bxbacn 2009-09-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 panzi667 的回复:]
引用 1 楼 findcaiyzh 的回复:
加密后服务器就不认识你的url了,怎么response你的request呢?


重写URL
[/Quote]

重写url是网页程序的问题,但现在是你把url改了,浏览器可不具备重新功能,他就请求出错了,你要做的不是加密url,而是加密url中的参数

Bad Request (Invalid URL)
去网上搜索一下这话的意思吧
panzi667 2009-09-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 findcaiyzh 的回复:]
加密后服务器就不认识你的url了,怎么response你的request呢?

[/Quote]
重写URL
宝_爸 2009-09-25
  • 打赏
  • 举报
回复
加密后服务器就不认识你的url了,怎么response你的request呢?

110,529

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧