这个程序的最终目的是从XORed十六进制字符串中以纯文本形式返回Eve和Bob。所以首先我用十六进制获得Eve和bob,然后将它们拼凑在一起,希望然后以十六进制的形式看到结果。问题是当我对Bob和Eve的十六进制字符串进行XOR时,我得到了这个符号,' \ x02 \ x07 \ x01P \ x00 \ x07作为初学者,我不知道这意味着什么。那个符号是什么?
计划是后来从XORed Eve和Bob向后工作,并分别以纯文本形式获取每个名称。
到目前为止我的简单代码是:
a= 'bob'
b='Eve'
g=a.encode("hex")
v=b.encode("hex")
def strxor(a, b):
if len(a) > len(b):
return "".join([chr(ord(x) ^ ord(y)) for (x, y) in zip(a[:len(b)], b)])
else:
return "".join([chr(ord(x) ^ ord(y)) for (x, y) in zip(a, b[:len(a)])])
k=strxor(g,v)
答案 0 :(得分:0)
这是基本的xor_encryption ...实际上b的工作方式类似于加密/解密密钥
import itertools
name1 = "eve online"
name2 = "bob"
xor_encrypted = "".join(chr(ord(a)^ord(b)) for a,b in zip(name1,itertools.cycle(name2)))
print repr(xor_encrypted) # 3 characters will look something like '\x07\x19\x07'
xor_decrypted = "".join(chr(ord(a)^ord(b)) for a,b in zip(xor_encrypted,itertools.cycle(name2)))
print repr(xor_decrypted) # should now print our decrypted 'eve'