首页 > 解决方案 > 带有字符串的整数的 XOR 加密列表

问题描述

我正在尝试在 Python3 中创建一个 XOR 函数以解决在线挑战。但是,我很难理解如何将密码应用于整数列表的概念。考虑清单

numlist = [36,22,80,0,0,4,23,25]

和密码(加密密钥)

"abc"

将密码应用于列表以循环遍历列表的正确方法是这样的吗?(36 将与“a”异或,22 与“b”异或,80 与“c”和 80 与“a”再次异或?)

for i in range(0, len(numlist)):
    numlist[i] ^= ord("abc"[i%3]) 

标签: pythonpython-3.x

解决方案


如果你愿意EncrypteDecrypte你可以先对你想要第二次运行加密的字符进行异或运算,encrypted-array然后得到解密的数组,见这个例子:

numlist = [36,22,80,0,0,4,23,25]

# Encrypted
for i in range(0, len(numlist)):
    numlist[i] ^= ord("abc"[i%3])  
print(numlist)

# Decrypted
for i in range(0, len(numlist)):
    numlist[i] ^= ord("abc"[i%3]) 
print(numlist)

输出:

[69, 116, 51, 97, 98, 103, 118, 123]
[36, 22, 80, 0, 0, 4, 23, 25]

推荐阅读