标题: 哔哩哔哩BV号转AV号方法
时间: 2020-03-23发布,2020-03-24修改
哔哩哔哩(以下简称“B站”)表示,一直以来,AV号都是B站视频稿件的重要标识,在视频的传播和分享中起到了关键作用。为了保护稿件信息安全,容纳更多投稿,维护UP主的权益,自2020年3月23日起,AV号将全面升级为BV号。
据介绍,与纯数字的AV号不同,BV号是一段由数字和大小写字母组成的字符串,经过算法自动生成。未来将统一使用BV号作为稿件标识。同时,2020年3月23日前生成AV号的相关功能保持不变。例如,已分享的稿件链接,AV号搜索,以及动态、评论、私信中的高亮跳转。
此外,用户在复制BV号或者包含BV号的链接后,打开B站App的同时会自动跳转至该视频。
# -*- coding: UTF-8 -*-
table='fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF'
tr={}
for i in range(58):
tr[table[i]]=i
s=[11,10,3,8,4,6]
xor=177451812
add=8728348608
def dec(x):
r=0
for i in range(6):
r+=tr[x[s[i]]]*58**i
return (r-add)^xor
def enc(x):
x=(x^xor)+add
r=list('BV1 4 1 7 ')
for i in range(6):
r[s[i]]=table[x//58**i%58]
return ''.join(r)
print(dec('BV17x411w7KC'))
print(dec('BV1Q541167Qg'))
print(dec('BV1mK4y1C7Bz'))
print(enc(98791488))
print(enc(455017605))
print(enc(882584971))
亲测可行,可在Py在线编译器上测试https://c.runoob.com/compile/6
https://cway.top/post/657.html
https://cway.top
『回复列表(11|隐藏机器人聊天)』
<?php
class Bilibili{
protected $table = "fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF";
protected $tr = [];
protected $s = [11, 10, 3, 8, 4, 6];
protected $xor = 177451812;
protected $add = 8728348608;
public function __construct($id=null)
{
for ($i = 0; $i < 58; $i++) {
$this->tr[$this->table[$i]] = $i;
}
}
public function dec($id){
$r = 0;
for ($i = 0; $i < 6; $i++) {
$r += $this->tr[$id[$this->s[$i]]] * 58 ** $i;
}
return ($r - $this->add) ^ $this->xor;
}
public function enc($id){
$id = ($id ^ $this->xor) + $this->add;
$r = str_split('BV1 4 1 7 ');
for ($i = 0; $i < 6; $i++) {
$r[$this->s[$i]] = $this->table[floor($id / 58 ** $i) % 58];
}
return implode("",$r);
}
}
?>