将十六进制字符串转换为二进制,然后进行异或

时间:2018-08-31 16:06:33

标签: hex xor binascii

我给了两个在Python 2中使用c.encode('hex')创建的十六进制字符串。我正在使用Python 3,我想将它们转换回二进制,对结果进行异或,然后打印出结果以ascii明文形式。如果两个字符串分别为a和b,以下代码是否起作用?

def xor(a, b):
return "".join(str(x ^ y) for (x, y) in zip(a, b))

a = str.encode(a)
a = binascii.unhexlify(a)
b = str.encode(b)
b = binascii.unhexlify(b)
print(xor(a, b))

这样做的结果与我所期望的不完全相同,所以我只是想确保自己正确地执行了操作。

0 个答案:

没有答案