python - 带有字符串的整数的 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])
解决方案
如果你愿意Encrypte
,Decrypte
你可以先对你想要第二次运行加密的字符进行异或运算,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]
推荐阅读
- python - JSON查询:python中的日期时间验证
- excel - Google Apps 脚本 - 将 xlsx 转换为覆盖现有文件的表格
- python-3.x - 抓取网页上的特定表格,但每次都是空的
- git - 赫斯基钩子不在 Lerna monorepo 中运行
- c# - 如何自动更新 DataGridViewColumn?
- javascript - 使用 ASP.NET Razor 的 Ajax POST
- android - 如何在 RecyclerView 上使用 Firebase 存储显示多个用户的图像
- java - 接收数据时如何以图形方式更改数字?
- python - .map_diag(plt.hist,bins=30) - 对角线上没有直方图
- c# - 单击关闭按钮后,我在这一行出现 System.IO.IO.Exception 错误 'string machine_data = serialPort1.ReadTo("\u0003");'