import math
moves = [2,4,6,8,10,1,3,5,7,9]
msg = "XOV EK HLYR NUCO HEEEWADCRETL CEEOACT KD"
decrypted = list(msg)
for i, letter in enumerate(msg):
moves_index = i % len(moves)
index = (math.floor(i / len(moves)) * len(moves)) + moves[moves_index]
decrypted[index - 1] = letter
print(str.format('{}, at index {}, goes in destination index {} (letter number {})', letter, i, index - 1, index))
print(''.join(decrypted))
这将打印出每个步骤,以便您可以根据手动操作进行验证:
^{pr2}$
然而,这最后打印的是:KX OHVL YEOR HNEUECREEWTALD CCCTE EKODA,它与您提出的解决方案不匹配:execlent work you have cracked the code(显然忽略大小写)。不确定是什么不符。。。在
本质上,密钥变成了密码中每个
x
个字母的顺序,x
是密钥的长度。在您的示例中,键的长度是10,因此您将按照它们对应的顺序号排列前10个字母。在这就是解释,下面是我写的一些代码,用密钥将密码按正确的顺序排列:
这将打印出每个步骤,以便您可以根据手动操作进行验证:
^{pr2}$然而,这最后打印的是:
KX OHVL YEOR HNEUECREEWTALD CCCTE EKODA
,它与您提出的解决方案不匹配:execlent work you have cracked the code
(显然忽略大小写)。不确定是什么不符。。。在我想出来了。一旦知道行数和列数,就可以将密文写入行中,然后根据键对行进行排列。如果我的解释有误,请改正。明文是“你破解了密码的可恶作品”
相关问题 更多 >
编程相关推荐