B站宣布AV号全面升级至BV号附python互换脚本

今日,B站官方公开了一则有关于“AV号全面升级”的相关公告。官方表示:为了保护信息安全,容纳更多投稿,维护UP主的权益,自2020年3月23日起,AV号将全面升级为BV号,未来BV号将作为稿件的统一标...

今日,B站官方公开了一则有关于“AV号全面升级”的相关公告。官方表示:为了保护信息安全,容纳更多投稿,维护UP主的权益,自2020年3月23日起,AV号将全面升级为BV号,未来BV号将作为稿件的统一标识。

为了保护稿件信息安全,容纳更多投稿,维护UP主的权益,自2020年3月23日起,AV号将全面升级为BV号。与纯数字的AV号不同,BV号是一段由数字和大小写字母组成的字符串,经过算法自动生成。未来将统一使用BV号作为稿件标识。

据悉,BV号是由一段数字和大小写字母组成的字符串,经过算法自动生成,而原有的AV号相关功能保持不变。未来将统一使用BV号作为稿件标识。同时, 2020 年 3 月 23 日前生成AV号的相关功能保持不变。例如,已分享的稿件链接,AV号搜索,以及动态、评论、私信中的高亮跳转。 

python算法

作者:mcfx
链接:https://www.zhihu.com/question/381784377/answer/1099438784
来源:知乎
table='fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF'
tr={}
for i in range(58):
	tr[table[i]]=i
s=[11,10,3,8,4,6,2,9,5,7]
xor=177451812
add=100618342136696320

def dec(x):
	r=0
	for i in range(10):
		r+=tr[x[s[i]]]*58**i
	return (r-add)^xor

def enc(x):
	x=(x^xor)+add
	r=list('BV          ')
	for i in range(10):
		r[s[i]]=table[x//58**i%58]
	return ''.join(r)

print(dec('BV17x411w7KC'))
print(dec('BV1Q541167Qg'))
print(dec('BV1mK4y1C7Bz'))
print(enc(170001))
print(enc(455017605))
print(enc(882584971))
  • 发表于 2021-02-05 09:56
  • 阅读 ( 362 )
  • 分类:互联网

0 条评论

请先 登录 后评论
锄禾小少
锄禾小少

701 篇文章

你可能感兴趣的文章

相关问题