V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
justin2018
V2EX  ›  分享发现

B 站点 bv 与 av 互转

  •  2
     
  •   justin2018 · 2020-03-24 09:29:02 +08:00 · 13337 次点击
    这是一个创建于 1710 天前的主题,其中的信息可能已经有所发展或是发生改变。

    来源:

    1.https://www.zhihu.com/question/381784377/answer/1099438784

    2.TG:PinTG

    /*
    方案一:
    来自 https://www.zhihu.com/question/381784377/answer/1099438784
    */
    var table = "fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF",
      tr = new Object();
    for (var i = 0; i < 58; i++) {
      tr[table[i]] = i;
    }
    var s = [11, 10, 3, 8, 4, 6],
      xor = 177451812,
      add = 8728348608;
    
    function dec(x) {
      var r = 0;
      for (var i = 0; i < 6; i++) {
        r += tr[x[s[i]]] * 58 ** i;
      }
      return (r - add) ^ xor;
    }
    
    function enc(x) {
      x = (x ^ xor) + add;
      r = "BV1  4 1 7  ".split("");
      for (var i = 0; i < 6; i++) {
        r[s[i]] = table[Math.floor(x / 58 ** i) % 58];
      }
      return r.join("");
    }
    
    console.log(dec("BV17x411w7KC"));
    console.log(enc(170001));
    
    /*
    方案二
    */
    function hget(type, id) {
      $http.get({
        url: `http://api.bilibili.com/x/web-interface/archive/stat?${type}id=${id}`,
        handler: resp => {
          var data = resp.data.data;
          console.log({
            bvid: data.bvid,
            aid: data.aid
          });
        }
      });
    }
    
    hget("a", "170001");
    hget("bv", "BV17x411w7KC");
    
    
    35 条回复    2020-03-31 11:15:16 +08:00
    littleylv
        1
    littleylv  
       2020-03-24 09:50:14 +08:00
    牛逼,特别是那个 api 的
    iMusic
        2
    iMusic  
       2020-03-24 10:27:50 +08:00
    爱了
    Felldeadbird
        3
    Felldeadbird  
       2020-03-24 10:34:28 +08:00
    我还以为 BV 是随机生成出来的。没想到还可以转回去 AV 号。B 站这设计神了。
    pcbl
        4
    pcbl  
       2020-03-24 10:36:31 +08:00 via Android
    cv 准备中。。
    amorphobia
        5
    amorphobia  
       2020-03-24 10:37:26 +08:00
    方案一牛逼
    x2ex
        6
    x2ex  
       2020-03-24 10:41:33 +08:00
    @pcbl #4 哈哈哈
    wangxiaoaer
        7
    wangxiaoaer  
       2020-03-24 10:43:50 +08:00
    @Felldeadbird #3 搜一下 hashid
    yukiloh
        8
    yukiloh  
       2020-03-24 11:00:44 +08:00 via Android   ❤️ 1
    笑死了,原来不是随机 id…
    learnshare
        9
    learnshare  
       2020-03-24 11:03:41 +08:00   ❤️ 1
    这就尴尬了,所谓的保护数据只是掩饰,实际上还是原来的前缀不太雅观
    locoz
        10
    locoz  
       2020-03-24 11:08:36 +08:00
    搞了半天是迷幻操作...让我想起了弹幕那个用户 id 的 crc32b😂
    Kiriya
        11
    Kiriya  
       2020-03-24 11:10:50 +08:00
    感觉 V 站和 B 站用户重合度很高啊
    yty2012g
        12
    yty2012g  
       2020-03-24 11:33:46 +08:00
    方案 1 的思路绝了!!
    NotFamous
        13
    NotFamous  
       2020-03-24 11:46:17 +08:00
    我就想知道方案 1 是怎么搞出来的!! 好厉害!!!
    yazoox
        14
    yazoox  
       2020-03-24 12:35:27 +08:00
    你们真厉害...... 这么快就......
    redeemer1001
        15
    redeemer1001  
       2020-03-24 12:35:32 +08:00
    方法 1 真的牛逼……
    vone
        16
    vone  
       2020-03-24 13:54:40 +08:00
    我还以为方案一是 B 站员工写的,没想到是推理出的算法。
    loveToMy1
        17
    loveToMy1  
       2020-03-24 16:36:43 +08:00
    真是优秀
    zhuangjia
        18
    zhuangjia  
       2020-03-24 17:19:12 +08:00
    方案一真是厉害
    ParadiseDS
        19
    ParadiseDS  
       2020-03-24 19:37:46 +08:00 via Android
    方案一绝了,数学好真的为所欲为
    1etterSong
        20
    1etterSong  
       2020-03-24 20:30:56 +08:00
    @pcbl cv 早就有了。专栏。
    pcbl
        21
    pcbl  
       2020-03-24 20:47:02 +08:00 via Android
    @1etterSong 那就占领 b 站,一步到位改 gv
    oneisall8955
        22
    oneisall8955  
       2020-03-24 21:10:57 +08:00
    66666
    lloovve
        23
    lloovve  
       2020-03-24 21:41:57 +08:00 via iPhone
    是时候 cctv 了
    NealCCC
        24
    NealCCC  
       2020-03-24 22:48:53 +08:00 via Android
    太强了👍
    pabupa
        25
    pabupa  
       2020-03-25 02:25:09 +08:00
    👍
    ZRS
        26
    ZRS  
       2020-03-25 03:21:35 +08:00
    乐了,还以为是 hash 结果是可逆的
    alphatoad
        27
    alphatoad  
       2020-03-25 03:59:17 +08:00 via iPhone
    学院派编程
    LukeChien
        28
    LukeChien  
       2020-03-25 05:17:04 +08:00 via Android
    要是我设计就加个校验位
    Phariel
        29
    Phariel  
       2020-03-25 06:23:31 +08:00
    方案 1 是太优秀了 逆向工程的杰出代表 全体起立 👏
    Neoth
        30
    Neoth  
       2020-03-25 06:58:50 +08:00
    在新冠肺炎宅家无事可做时代,b 站领导层终于想起来还可以这么没事找事儿,让 996 程序员码农们不要闲下来的产品需求,可以预见 b 站全面取销 av 字头的未来了。-- 事件原理介绍:AV (中文多指成人视频,毛片)这个 word 成了 b 站高层融入「主流中国社会」的如此隐痛……
    iamdqncoder
        31
    iamdqncoder  
       2020-03-25 16:47:35 +08:00
    等一个油猴脚本?
    peterzane
        32
    peterzane  
       2020-03-26 00:32:46 +08:00 via iPad
    @iamdqncoder 大佬自己做一个啊,我们只能鼓掌
    yuy
        33
    yuy  
       2020-03-26 15:58:01 +08:00
    方案一是信息学竞赛者(OIer)写出来的,此人确实有实力。
    yuy
        34
    yuy  
       2020-03-26 15:59:23 +08:00
    而且陈睿的知乎已经关注了他
    kawei
        35
    kawei  
       2020-03-31 11:15:16 +08:00
    菜鸡来问一下 这个 方案 1 编辑成 py 应该怎么使用他呢?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1021 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 21:35 · PVG 05:35 · LAX 13:35 · JFK 16:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.