在 Python 中创建 XOR 密钥
Creating a XOR key in Python
这与 encryption/decryption 有关。我有一个原始字符串,我从中创建了字符列表。
['f', 'i', 'r', 's', 't', ' ']
我已将原始字符串加密到第二个列表中。
['h', '=', 'g', 'l', 'x', 'k']
我需要做的是创建一个 XOR 密钥,以便 encrypted list ^ XOR key = original list
如何创建 XOR 密钥(列表)以实现此目的?
我可能离这里很远...
>>> original = ['f', 'i', 'r', 's', 't', ' ']
>>> xored = ['h', '=', 'g', 'l', 'x', 'k']
>>> key = [chr(ord(a) ^ ord(xored[i])) for i, a in enumerate(original)]
>>> key
['\x0e', 'T', '\x15', '\x1f', '\x0c', 'K']
>>> [chr(ord(a) ^ ord(xored[i])) for i, a in enumerate(key)]
['f', 'i', 'r', 's', 't', ' ']
>>> [chr(ord(a) ^ ord(key[i])) for i, a in enumerate(original)]
['h', '=', 'g', 'l', 'x', 'k']
将原始元素的序号与键的相应索引序号进行异或运算,得到异或后的版本。
编辑
由于您似乎在尝试对列表本身进行异或运算,因此您可以这样做
class XOR(list):
def __xor__(self, other):
return map(chr, [ord(x[0]) ^ ord(x[1]) for x in zip(self, other)])
l = XOR(['f', 'i', 'r', 's', 't', ' '])
print(l ^ ['\x0e', 'T', '\x15', '\x1f', '\x0c', 'K'])
这与 encryption/decryption 有关。我有一个原始字符串,我从中创建了字符列表。
['f', 'i', 'r', 's', 't', ' ']
我已将原始字符串加密到第二个列表中。
['h', '=', 'g', 'l', 'x', 'k']
我需要做的是创建一个 XOR 密钥,以便 encrypted list ^ XOR key = original list
如何创建 XOR 密钥(列表)以实现此目的?
我可能离这里很远...
>>> original = ['f', 'i', 'r', 's', 't', ' ']
>>> xored = ['h', '=', 'g', 'l', 'x', 'k']
>>> key = [chr(ord(a) ^ ord(xored[i])) for i, a in enumerate(original)]
>>> key
['\x0e', 'T', '\x15', '\x1f', '\x0c', 'K']
>>> [chr(ord(a) ^ ord(xored[i])) for i, a in enumerate(key)]
['f', 'i', 'r', 's', 't', ' ']
>>> [chr(ord(a) ^ ord(key[i])) for i, a in enumerate(original)]
['h', '=', 'g', 'l', 'x', 'k']
将原始元素的序号与键的相应索引序号进行异或运算,得到异或后的版本。
编辑
由于您似乎在尝试对列表本身进行异或运算,因此您可以这样做
class XOR(list):
def __xor__(self, other):
return map(chr, [ord(x[0]) ^ ord(x[1]) for x in zip(self, other)])
l = XOR(['f', 'i', 'r', 's', 't', ' '])
print(l ^ ['\x0e', 'T', '\x15', '\x1f', '\x0c', 'K'])