XOR bit a bit de números hexadecimais em python
como podemos XOR números hexadecimais em python, por exemplo. Eu quero xor 'ABCD' para '12EF'. resposta deve ser B922.
Eu usei abaixo código, mas está retornando valor de lixo
def strxor(a, b): # xor two strings of different lengths
if len(a) > len(b):
return "".join(["%s" % (ord(x) ^ ord(y)) for (x, y) in zip(a[:len(b)], b)])
else:
return "".join(["%s" % (ord(x) ^ ord(y)) for (x, y) in zip(a, b[:len(a)])])
key ='12ef'
m1='abcd'
print strxor(key,m1)