我有下面这个凯撒密码解密程序:
alphabet = 'abcdefghijklmnopqrstuvwxyz'
text_input = input('Enter text: ')
possible_keys = len(alphabet)
for keys in range(possible_keys):
decrypted_text = ''
for character in text_input:
if character in alphabet:
position = alphabet.find(character)
possible_pos = position - keys
possible_pos %= len(alphabet)
new_character = alphabet[possible_pos]
decrypted_text += new_character
else:
decrypted_text += character
print(f' Key#:{keys}: {decrypted_text}')
path = r'C:\Users\thong\OneDrive\Documents\words_alpha.txt'
with open(words_alpha, "r") as file:
word_list = [line.strip() for line in file]
# Check if any word in decrypted_text matches the words from the file
for word in decrypted_text.split():
if word.lower() in word_list:
print(f"'{word}' is a valid word!")
else:
print(f"'{word}' is not found.")
该程序旨在自动查找用于加密凯撒密码的特定密钥。我已经这样做了,以便程序使用 .txt 文件检查哪个“decrypted_text”输出是否具有有效的英语单词;然后确定包含最有效单词的关键输出。然而,该程序仅利用了“decrypted_text”的最后输出,因此无法查找正确的密钥。 我刚刚开始使用 Python 几个月,如果有任何困惑,请谅解!
发生这种情况是因为在每次迭代中
decrypted_text
设置为空字符串并且不保存。因此,您可以添加解密文本列表并将新值附加到该列表。
在您可以迭代该列表后,检查任何解密文本是否有效。