def xor(data, key):
    dlen = len(data)
klen = len(key)
if dlen > klen:
    key = key * ((dlen + klen - 1) // klen)
key = key[:dlen]
data = int(_hexlify(data), 16)
key = int(_hexlify(key), 16)
result = data ^ key | 1 << dlen * 8 + 7
result = memoryview(hex(result))
result = result[4:-1] if result[-1] == 'L' else result[4:]
result = _unhexlify(result)
return result
Самый быстрый побитовый xor между двумя многобайтовыми переменными двоичных данных