我正在尝试创建一个函数,它将在python 3中对两个字节进行异或。这是有效的,我得到一个看起来像字节的字符串,但它说它不是字节(如果我打印它它没有它前面的b,如果我尝试用字节连接它,它会说你不能连接str和字节。)
当我尝试将其转换回字节时,由于某种原因它的长度翻倍。以下代码为例。如果我使用.encode()或bytes()并不重要,它的长度仍会增加。请帮助我,我希望它返回字节:)
def by_xor(x, y):
l = len(y)
s = ""
for i in range(len(x)):
s += chr(x[i] ^ y[i % l])
return s
a = b'random text'
b = b'\xd2\xf1\x83\x99'
x = by_xor(a, b)
print(x)
print(len(x))
x = x.encode()
print(x)
print(len(x))