我正在尝试处理某位发布的crypto puzzle人,并且试图在python3中使其自动化,并且遇到了一些麻烦。这让我发疯,我不知道该怎么办。
它涉及进行base64解码,该解码提供了字节类型。
我想遍历此字节集合,并对每个字节进行按位求反。也就是说,例如10010001(145)应该变成01101110(110)。 〜运算符给了我两个恭维,并产生了负整数。我想使用无符号字节。
如何在python 3中做到这一点?
我想做什么的伪代码:
[ bitwise_negate(x) for x in my_byte_array ]
答案 0 :(得分:2)
您可以使用python base64
模块首先将字符串解码为相应的字节,然后可以将每个字节与255进行异或运算(11111111)以得到结果的ascii点码,然后使用chr
获得实际字符
import base64
string = 'l4uLj8XQ0J2Wi9GThtDMzJGUmbKluw=='
decoded = base64.decodebytes(bytes(string, encoding='utf-8'))
print("".join([chr(item ^ 255) for item in decoded]))