V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
ob
V2EX  ›  程序员

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

  •  
  •   ob · 2016-06-13 00:38:07 +08:00 · 3800 次点击
    这是一个创建于 3120 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在分析一个网站的特定链接。
    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 进制字符串的,有哪种加密格式是有这种功能的?
    求大拿帮忙指点指点,自己找了几种方式编码都没找出这类规律。
    谢谢。
    13 条回复    2016-06-14 07:01:05 +08:00
    lslqtz
        1
    lslqtz  
       2016-06-13 03:19:46 +08:00
    我拿 16 进制转是乱码,你确定这是 16 进制吗。。
    xspoco
        2
    xspoco  
       2016-06-13 04:32:43 +08:00
    https://www.test.com/ 真有这个网站
    lslqtz
        3
    lslqtz  
       2016-06-13 05:56:05 +08:00   ❤️ 1
    @xspoco 233333
    ob
        4
    ob  
    OP
       2016-06-13 07:22:26 +08:00 via Android
    @lslqtz 不确定是 16 进制,只是看字符串都是 0-F 之间。


    @xspoco 随便写的。。
    dixyes
        5
    dixyes  
       2016-06-13 07:35:28 +08:00 via Android
    你们确信不是 hash ? 不是特殊姿势的 hash ?必须要直接转换成 ascii 或者 utf8 ?
    ob
        6
    ob  
    OP
       2016-06-13 08:13:33 +08:00 via Android
    @dixyes 不确定,就是不知道规律,就是想看有没有能找出对应的明文信息。
    iyoood
        7
    iyoood  
       2016-06-13 08:57:05 +08:00
    可能是某种加密算法产生的,一般看不出规律吧,要知道 key 才行
    ob
        8
    ob  
    OP
       2016-06-13 09:11:12 +08:00 via Android
    @iyoood 对啊,所以想知道有哪种加密算法是会产生 0-F 的字符串,这些都是公开的 url ,应该没必要用 key 加密解密这么复杂吧?
    类似 crc32 , base64 这种直接解。
    elvodn
        9
    elvodn  
       2016-06-13 09:31:57 +08:00
    加密可以防止解读 URL 内包含信息,或者私自构造 URL
    aec4d
        10
    aec4d  
       2016-06-13 09:35:48 +08:00
    你透漏的信息太少
    32 位长度 16 进制编码是肯定的 意味着原数据是 128bit 最简单的就是使用 md5 进行散列就能得到这样的结果
    from hashlib import md5
    md5(salt+id).hexdigest()
    就可以得到类似的结果
    如果这个 url 是需要授权用户才能够访问这样做是可能的
    如果不是就不能了 因为无法对散列后的结果进行复原
    iyoood
        11
    iyoood  
       2016-06-13 10:56:11 +08:00
    这里面包含了某些信息不想让大家知道就加个密呗, 0-F 只不过是 2 进制转成 16 进制的结果各种算法都可以啊
    ob
        12
    ob  
    OP
       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
        13
    xiamx  
       2016-06-14 07:01:05 +08:00
    如果是散列的话,反解方法是穷举
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2642 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 04:10 · PVG 12:10 · LAX 20:10 · JFK 23:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.