来源:
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");
![]() | 1 U7Q5tLAex2FI0o0g 2020-03-24 09:50:14 +08:00 牛逼,特别是那个 api 的 |
2 MzM2ODkx 2020-03-24 10:27:50 +08:00 爱了 |
![]() | 3 Felldeadbird 2020-03-24 10:34:28 +08:00 我还以为 BV 是随机生成出来的。没想到还可以转回去 AV 号。B 站这设计神了。 |
![]() | 4 pcbl 2020-03-24 10:36:31 +08:00 via Android cv 准备中。。 |
![]() | 5 amorphobia 2020-03-24 10:37:26 +08:00 方案一牛逼 |
7 wangxiaoaer 2020-03-24 10:43:50 +08:00 @Felldeadbird #3 搜一下 hashid |
8 yukiloh 2020-03-24 11:00:44 +08:00 via Android ![]() 笑死了,原来不是随机 id… |
![]() | 9 learnshare 2020-03-24 11:03:41 +08:00 ![]() 这就尴尬了,所谓的保护数据只是掩饰,实际上还是原来的前缀不太雅观 |
![]() | 10 locoz 2020-03-24 11:08:36 +08:00 搞了半天是迷幻操作...让我想起了弹幕那个用户 id 的 crc32b |
11 Kiriya 2020-03-24 11:10:50 +08:00 感觉 V 站和 B 站用户重合度很高啊 |
12 yty2012g 2020-03-24 11:33:46 +08:00 方案 1 的思路绝了!! |
![]() | 13 NotFamous 2020-03-24 11:46:17 +08:00 我就想知道方案 1 是怎么搞出来的!! 好厉害!!! |
![]() | 14 yazoox 2020-03-24 12:35:27 +08:00 你们真厉害...... 这么快就...... |
![]() | 15 redeemer1001 2020-03-24 12:35:32 +08:00 方法 1 真的牛逼…… |
![]() | 16 vone 2020-03-24 13:54:40 +08:00 我还以为方案一是 B 站员工写的,没想到是推理出的算法。 |
![]() | 17 loveToMy1 2020-03-24 16:36:43 +08:00 真是优秀 |
![]() | 18 zhuangjia 2020-03-24 17:19:12 +08:00 方案一真是厉害 |
![]() | 19 ParadiseDS 2020-03-24 19:37:46 +08:00 via Android 方案一绝了,数学好真的为所欲为 |
![]() | 20 1etterSong 2020-03-24 20:30:56 +08:00 @pcbl cv 早就有了。专栏。 |
![]() | 21 pcbl 2020-03-24 20:47:02 +08:00 via Android @1etterSong 那就占领 b 站,一步到位改 gv |
![]() | 22 itechify PRO 66666 |
23 lloovve 2020-03-24 21:41:57 +08:00 via iPhone 是时候 cctv 了 |
24 NealCCC 2020-03-24 22:48:53 +08:00 via Android 太强了 |
![]() | 25 pabupa 2020-03-25 02:25:09 +08:00 |
![]() | 26 ZRS 2020-03-25 03:21:35 +08:00 乐了,还以为是 hash 结果是可逆的 |
![]() | 27 alphatoad 2020-03-25 03:59:17 +08:00 via iPhone 学院派编程 |
28 LukeChien 2020-03-25 05:17:04 +08:00 via Android 要是我设计就加个校验位 |
![]() | 29 Phariel 2020-03-25 06:23:31 +08:00 方案 1 是太优秀了 逆向工程的杰出代表 全体起立 |
30 Neoth &nbs; 2020-03-25 06:58:50 +08:00 在新冠肺炎宅家无事可做时代,b 站领导层终于想起来还可以这么没事找事儿,让 996 程序员码农们不要闲下来的产品需求,可以预见 b 站全面取销 av 字头的未来了。-- 事件原理介绍:AV (中文多指成人视频,毛片)这个 word 成了 b 站高层融入「主流中国社会」的如此隐痛…… |
![]() | 31 iamdqncoder 2020-03-25 16:47:35 +08:00 等一个油猴脚本? |
![]() | 32 peterzane 2020-03-26 00:32:46 +08:00 via iPad @iamdqncoder 大佬自己做一个啊,我们只能鼓掌 |
33 yuy 2020-03-26 15:58:01 +08:00 方案一是信息学竞赛者(OIer)写出来的,此人确实有实力。 |
34 yuy 2020-03-26 15:59:23 +08:00 而且陈睿的知乎已经关注了他 |
![]() | 35 kawei 2020-03-31 11:15:16 +08:00 菜鸡来问一下 这个 方案 1 编辑成 py 应该怎么使用他呢? |