Python凯撒密码解密程序

问题描述 投票:0回答:1

我有下面这个凯撒密码解密程序:

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 几个月,如果有任何困惑,请谅解!

python encryption caesar-cipher
1个回答
0
投票

发生这种情况是因为在每次迭代中

decrypted_text
设置为空字符串并且不保存。因此,您可以添加解密文本列表并将新值附加到该列表。 在您可以迭代该列表后,检查任何解密文本是否有效。

© www.soinside.com 2019 - 2024. All rights reserved.