简单移位加异或操作。
enc='Q|j{g'
ant=[0x52, 0xFD, 0x16, 0xA4, 0x89, 0xBD, 0x92, 0x80, 0x13, 0x41,
0x54, 0xA0, 0x8D, 0x45, 0x18, 0x81, 0xDE, 0xFC, 0x95, 0xF0,
0x16, 0x79, 0x1A, 0x15, 0x5B, 0x75, 0x1F]
print(len(enc))
print(len(ant))
for i in range(5,32,1):
if (i&1)!=0:
v1=((ant[i-5]<<2) | (ant[i-5]>>6))&0xff
else:
v1=((ant[i-5]>>2) | (ant[i-5]<<6))&0xff
ant[i-5]=v1
flag=[]
for i in range(5):
flag.append(ord(enc[i]))
for i in range(27):
flag.append(ant[i])
for i in range(32):
print(chr(flag[i]^(32-i)),end='')
移位完最好加上 &0xff