我写了一些代码来检查vigenere密码的不同可能性,然后让它只添加列表到可能的选项,这些选项在解密时会产生一个单词(这样我就不会得到成千上万的打印输出,我只知道最可能的可能性)。你知道吗
这是目前为止的密码
def vigenere(input):
print("VIGENERE")
key = ""
keyList = []
textList = []
for word in englishDictionary:
key = re.sub('[\W_]+', '', word)
if key[:len(input)] not in keyList:
while len(key) < len(input):
key = key + key
keyLetters = list(key.upper())
keyNumbers = []
for x in keyLetters:
keyNumbers.append(alphaNum.get(x))
vigenereOutput = ""
for z in list(input):
try:
keyNum = int(keyNumbers[0])
except IndexError:
pass
keyNum = keyNum - 1
inbetween = int(alphaNum.get(z)) - keyNum
del keyNumbers[0]
if inbetween < 1:
inbetween = 26 + inbetween
vigenereOutput = vigenereOutput + numAlpha.get(str(inbetween))
if vigenereOutput in englishDictionary:
keyList.append(key[:len(input)])
textList.append(vigenereOutput)
if len(keyList) > 0:
for keyEntry in len(keyList):
print("Key:", keyList[keyEntry])
print("Text:", textList[keyEntry])
print()
englishDictionary是我字典文本文件中所有单词的列表(相当大的文件,但使用一个小文件会破坏这个解码器的功能)
然而,现在翻阅整本词典需要20多分钟。。。如何加快这个过程?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐