帮忙分析下这种 URL 的编码规律

2016-06-13 00:38:07 +08:00
 ob
在分析一个网站的特定链接。
http://www.test.com/abc/ddd/C81C7CB1B41BAFBC97AB10467251CFD2CF5ACED97C5E59C6005570E02FAC2EE0
http://www.test.com/abc/ddd/C81C7CB1B41BAFBC97AB10467251CFD2CF5ACED97C5E59C6B7B1D297BA67A5EE
http://www.test.com/abc/eee/C81C7CB1B41BAFBC97AB10467251CFD2FA5807816EFC6F0405E2B4CA3B5936A204DD9221488E3820F8D8572993A1B2F2

发现尾部参数都是一些 16 进制的字符串,前面 32 位应该是用户账号,中间应该是日期,然后第三个链接后面部分应该是时间(如: 17:00-17:06 )。

类似这种参数是怎么变成这类 16 进制字符串的,有哪种加密格式是有这种功能的?
求大拿帮忙指点指点,自己找了几种方式编码都没找出这类规律。
谢谢。
3795 次点击
所在节点    程序员
13 条回复
lslqtz
2016-06-13 03:19:46 +08:00
我拿 16 进制转是乱码,你确定这是 16 进制吗。。
xspoco
2016-06-13 04:32:43 +08:00
https://www.test.com/ 真有这个网站
lslqtz
2016-06-13 05:56:05 +08:00
@xspoco 233333
ob
2016-06-13 07:22:26 +08:00
@lslqtz 不确定是 16 进制,只是看字符串都是 0-F 之间。


@xspoco 随便写的。。
dixyes
2016-06-13 07:35:28 +08:00
你们确信不是 hash ? 不是特殊姿势的 hash ?必须要直接转换成 ascii 或者 utf8 ?
ob
2016-06-13 08:13:33 +08:00
@dixyes 不确定,就是不知道规律,就是想看有没有能找出对应的明文信息。
iyoood
2016-06-13 08:57:05 +08:00
可能是某种加密算法产生的,一般看不出规律吧,要知道 key 才行
ob
2016-06-13 09:11:12 +08:00
@iyoood 对啊,所以想知道有哪种加密算法是会产生 0-F 的字符串,这些都是公开的 url ,应该没必要用 key 加密解密这么复杂吧?
类似 crc32 , base64 这种直接解。
elvodn
2016-06-13 09:31:57 +08:00
加密可以防止解读 URL 内包含信息,或者私自构造 URL
aec4d
2016-06-13 09:35:48 +08:00
你透漏的信息太少
32 位长度 16 进制编码是肯定的 意味着原数据是 128bit 最简单的就是使用 md5 进行散列就能得到这样的结果
from hashlib import md5
md5(salt+id).hexdigest()
就可以得到类似的结果
如果这个 url 是需要授权用户才能够访问这样做是可能的
如果不是就不能了 因为无法对散列后的结果进行复原
iyoood
2016-06-13 10:56:11 +08:00
这里面包含了某些信息不想让大家知道就加个密呗, 0-F 只不过是 2 进制转成 16 进制的结果各种算法都可以啊
ob
2016-06-13 18:37:09 +08:00
@aec4d
@iyoood

URL 不需要授权,有登录的都可以访问。
而且这些 URL 包含参数在里面,肯定是可以复原的,所以应该不是 md5 这种加密。


预约日期: 2016 年 06 月 14 日 11:48-11:54
http://.../C81C7CB1B41BAFBC97AB10467251CFD2FA5807816EFC6F04 BB874A4097DB9FF2 F247D414148BD8A5F8D8572993A1B2F2

预约日期: 2016 年 06 月 15 日 11:48-11:54
http://.../C81C7CB1B41BAFBC97AB10467251CFD2FA5807816EFC6F04 45584E7145661ED0 F247D414148BD8A5F8D8572993A1B2F2

预约日期: 2016 年 06 月 18 日 11:48-11:54
http://.../C81C7CB1B41BAFBC97AB10467251CFD2FA5807816EFC6F04 141E94029CF267A2 F247D414148BD8A5F8D8572993A1B2F2



前面 48 位应该是部门+账号之类的,后面两段应该是日期 和 时间。

比如:
11:42-11:48
C81C7CB1B41BAFBC97AB10467251CFD2FA5807816EFC6F04A5C6F7D929E9EB96 40CEB245A59B3681A004AFE5A7F06CA8

11:48-11:54
C81C7CB1B41BAFBC97AB10467251CFD2FA5807816EFC6F04A5C6F7D929E9EB96 F247D414148BD8A5F8D8572993A1B2F2

11:54-12:00
C81C7CB1B41BAFBC97AB10467251CFD2FA5807816EFC6F04A5C6F7D929E9EB96 3CB03A77CC7A4675631C51795523CF9B

这三个链接的后面部分只是时间段不一样。对应的 16 进制字符串不一样。

不知道有没有什么办法能反解出来。
xiamx
2016-06-14 07:01:05 +08:00
如果是散列的话,反解方法是穷举

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/285249

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX