我正在尝试按如下方式解密单字节XOR(按原样执行):
from binascii import unhexlify
if __name__ == "__main__":
encoded = unhexlify("7f454c467f454c467f454c46")
for key in range(256):
decoded = ''.join(chr(b ^ key) for b in encoded)
if decoded.isprintable():
print(key, decoded)
执行时出现以下错误:
File "temp.py", line 8, in <module>
decoded = ''.join(chr(b ^ key) for b in encoded)
File "temp.py", line 8, in <genexpr>
decoded = ''.join(chr(b ^ key) for b in encoded)
TypeError: unsupported operand type(s) for ^: 'str' and 'int'
有什么作用?谢谢!
答案 0 :(得分:1)
在进行XOR之前,使用ord
将字符转换为整数。
decoded = ''.join(chr(ord(b) ^ key) for b in encoded)
答案 1 :(得分:1)
您的问题是spread
是字符串,而overflow: scroll !important; overflow-y: scroll !important;
是整数。
如果您想使用b
,则两个变量都必须是整数-您可以使用key
,这将解决您的问题。
^