如何异或 Python 3 中的两个十六进制字符串?
How to XOR two hex strings in Python 3?
我有两个字符串存储在两个单独的文件中,string1="95274DE03C78B0BD"
和 string2="48656c6c6f20576f"
。
如何在 Python 3 中对它们进行按位异或?我希望得到 DD42218C5358E7D2
作为我的结果。请注意,我不想 ord()
字符串,我的字符串已经是十六进制了。
Python3 中的字符串是 unicode 对象,因此十六进制字符的字符串不对应于内存中整数的二进制表示(您需要使用 XOR)。
考虑到这一点,您可以先将字符串解释为 base-16 整数,对它们进行 XOR,然后将生成的整数转换回十六进制字符串:
>>> hex(int(string1, 16) ^ int(string2, 16))
'0xdd42218c5358e7d2'
我有两个字符串存储在两个单独的文件中,string1="95274DE03C78B0BD"
和 string2="48656c6c6f20576f"
。
如何在 Python 3 中对它们进行按位异或?我希望得到 DD42218C5358E7D2
作为我的结果。请注意,我不想 ord()
字符串,我的字符串已经是十六进制了。
Python3 中的字符串是 unicode 对象,因此十六进制字符的字符串不对应于内存中整数的二进制表示(您需要使用 XOR)。
考虑到这一点,您可以先将字符串解释为 base-16 整数,对它们进行 XOR,然后将生成的整数转换回十六进制字符串:
>>> hex(int(string1, 16) ^ int(string2, 16))
'0xdd42218c5358e7d2'