【发布时间】:2017-10-09 12:18:56
【问题描述】:
我是 python 新手,我有一个(也许)一个愚蠢的问题。
我必须异或两个值。目前我的价值观是这样的:
v1 =
<class 'str'>
2dbdd2157b5a10ba61838a462fc7754f7cb712d6
v2 =
<class 'str'>
5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8
但问题是,我需要对实际的 HEX 值进行异或运算,而不是字符串中给定字符的 ascii 值。
例如:
第一个字符串的第一个字节是s1 = 2d,第二个字符串是s2 = 5b
def sxor(s1,s2):
return ''.join(chr(ord(a) ^ ord(b)) for a,b in zip(s1,s2))
这不起作用,因为它返回每个字符的 ASCII 值(然后对它们进行异或),这显然与实际的十六进制值不同。
【问题讨论】:
-
将十六进制转换为整数,异或整数。