我正在编写随机替换密码,并且在用于编写常规语句时效果很好。然而,当我尝试测试'abbcccddddeeeee'时,我会得到像'G H H I I I J J J K K K K'这样的东西。我如何更改我的代码,以便为周期中的每个字母更改“键”或“vari”,但仍保持不变,以使没有任何字母对应多个其他字母?随机替代密码(Python)
import random
intext = raw_input("Enter a message to encrypt: ")
intext = intext.upper()
key = random.randint(0,27)
vari = random.randint(0,27)
def randomsub(intext):
outtext = []
intext = intext.upper()
for c in intext:
num = ord(c)
if num >= ord('A') and num <= ord('Z'):
num = num - ord('A')
num = num + (key + vari) % 26
num += ord('A')
outtext.append(chr(num))
return ' '.join(outtext)
print randomsub(intext)
你得到的结果有什么问题? –
你有没有想过如何解密应该工作,无论是你的代码是现在的方式或你希望你的代码的方式? – user2357112
mmm,就像[enigma机器](https://en.wikipedia.org/wiki/Enigma_machine)? – Copperfield