gpt4 book ai didi

python - 凯撒密码 - 错误输出

转载 作者:太空宇宙 更新时间:2023-11-04 05:52:18 34 4
gpt4 key购买 nike

问题是:

Your program needs to decode an encrypted text file called "encrypted.txt". The person who wrote it used a cipher specified in "key.txt". This key file would look similar to the following:

A    B
B C
C D
D E
E F
F G
G H
H I
I J
J K
K L
L M
M N
N O
O P
P Q
Q R
R S
S T
T U
U V
V W
W X
X Y
Y Z
Z A

The left column represents the plaintext letter, and the right column represents the corresponding ciphertext.

Your program should decode the "encrypted.txt" file using "key.txt" and write the plaintext to "decrypted.txt".

我有:

decrypt = ""
keyfile = open("key.txt", "r")
cipher = {}

for keyline in keyfile:
cipher[keyline.split()[0]] = keyline.split()[1]
keyfile.close()
encrypt = []
encryptedfile = open("encrypted.txt", "r")
readlines = encryptedfile.readlines()
str = ""

for line in readlines:
str = line
letter = list(str)
for i in range(len(letter)):
if letter[i]==",":
decrypt += ","
elif letter[i] == ".":
decrypt+= "."
elif letter[i] == "!":
decrypt += "!"
elif letter[i] == " ":
decrypt += " "
else:
found = False
count = 0

while (found == False):
if (letter[i] == keyline.split()[0][count]):
decrypt += keyline.split()[1][count]
found = True
count += 1
print decrypt

encryptedfile.close()
decryptedfile = open("decrypted.txt", "w")
decryptedfile.write(decrypt)
decryptedfile.close()

这是 Python 语言。输出确实生成了一个名为 decrypted.txt 的文件,但文件中唯一的内容是 A,这对我来说没有意义。对于这个问题,它应该输出更多,对吗?

最佳答案

使用 key.txt 中给定的 key 解密文件 enrcypted.txt 并将结果保存到 decrypted.txt:

with open('key.txt', 'r') as keyfile:                                           
pairs = [line.split() for line in keyfile]
columns = [''.join(x) for x in zip(*pairs)]
# Or to make it work with lower case letters as well:
# columns = [''.join(x)+''.join(x).lower() for x in zip(*pairs)]
key = str.maketrans(
*reversed(columns)
)

with open('encrypted.txt', 'r') as encrypted_file:
decrypted = [line.translate(key) for line in encrypted_file]

with open('decrypted.txt', 'w') as decrypted_file:
decrypted_file.writelines(decrypted)

关于python - 凯撒密码 - 错误输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29613073/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com