我正在使用Python 3创建强力Vigenere解密程序。 Vigenere代码基本上是将字母字符串加在一起。
[我希望我的代码工作的方式是用户放入他们想要的任何键(完成此操作),将字母变成其数字(也完成),然后将每对键加在一起(进行此操作,以及我需要帮助的内容),并打印出两个键及其添加的内容。
为此,我需要能够跟踪哪些键对已添加在一起。我该怎么办?
BTW,我当前的代码是这个。我正在解码和编程实践中都这样做,所以我真的只想要跟踪添加的密钥对的方法,而不是整个程序。
#defines start variables
import math
alph = "abcdefghijklmnopqrstuvwxyz"
keyqty = int(input("how many keys?"))
listofkeys = []
listofindex = []
timer = 0
#gets keys
while True:
if timer >= keyqty:
break
else:
pass
listofkeys.append(input("key: ").lower())
timer += 1
tempkey = ""
#blank before key
for item in listofkeys:
listofindex.append("")
for letter in item:
listofindex.append(alph.find(letter)
timer = 0
newkey = False
key1index = []
key2index = []
endex = []
printletter = ""
doneadds = []
显然,它仍然需要其他工作,但需要一些帮助。
您可以将一组用于快速查找(摊销的恒定时间)。
tried = set()
for ...
if word not in tried:
try()
tried.add(word)
或使用itertools.product()生成试验,而无需跟踪已尝试的试验。
for password in itertools.product(alph, repeat=keyqty):
try(password)