通过弹幕信息得到Bilibili用户的ID

当你打开一个视频页面的源代码,可以找到某一行,在播放器的位置,有一个 cid 参数。

B 站发送的请求里也可以看到弹幕请求:

请求弹幕的地址是http://comment.bilibili.com/看到的cid.xml

弹幕信息的内容:
<d p="时间,模式,字体大小,颜色,时间戳,弹幕池,???,弹幕ID">内容</d>

从这里并不能看到用户的 ID 。上面???的部分应该是用户 ID 的某种 hash 。

测试一下。我的B站空间是 http://space.bilibili.com/4764287/ ,其中 4764287 是我的 ID 。在弹幕列表找到自己发过的弹幕,???部分是 01da63f0

经过一些测试,最后发现 4764287 经过 CRC32b hash 结果是 f063da01 ,而储存在弹幕信息里的值是 01da63f0 。也就是说,弹幕信息???部分是用户 ID CRC32b 之后得到的结果按每两位一组倒序排列的结果。

所以,已知弹幕信息,想逆向找到发弹幕的用户,需要有所有用户 ID 的 CRC32b 彩虹表(现在 B 站用户 ID 为 1 到接近 60, 000, 000)即可。

而且已经有人做了这件事:https://danmu.fuckbilibili.com/