Tominysun

3月23日B站刚发布AV转BV的消息,当天下午就有大神给出了算法,tql!Orz.

网传作者mcfx是国家集训队成员,TSU智班.(反正就是tql!)

代码好像以WTFPL开源:

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(170001))
print(enc(455017605))
print(enc(882584971))

链接:https://www.zhihu.com/question/381784377/answer/1099438784
原回答如下:
截图 2020-03-26 21.15.36.png

添加新评论