如何在python3中取反字节

时间:2019-12-04 19:12:30

标签: python python-3.x

我正在尝试处理某位发布的crypto puzzle人,并且试图在python3中使其自动化,并且遇到了一些麻烦。这让我发疯,我不知道该怎么办。

它涉及进行base64解码,该解码提供了字节类型。

我想遍历此字节集合,并对每个字节进行按位求反。也就是说,例如10010001(145)应该变成01101110(110)。 〜运算符给了我两个恭维,并产生了负整数。我想使用无符号字节。

如何在python 3中做到这一点?

我想做什么的伪代码:

[ bitwise_negate(x) for x in my_byte_array ]

1 个答案:

答案 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]))