我将其设置为询问用户一个要加密的单词,使用我自己的字母表可以正常工作。
我的问题是试图让它返回解密的文本。
到目前为止,我要么返回加密消息两次,要么发回不同版本的加密消息。
我尝试在 for char 中使用 - 而不是 +,它给了我一个错误,我认为这是正确的方法。
alphabet = "abcdefghijklmnopqrstuvwxyz"
key = "zjrekydnqoluaxmicvpgtfbhws"
def decryptMessage(ciphertext, key):
plaintext = ""
for char in ciphertext:
if alphabet.find(char) < +1:
plaintext += key[alphabet.find(char)]
else:
plaintext += char
return plaintext
def encryptMessage(plaintext, key):
ciphertext = ""
for char in plaintext:
if alphabet.find(char) > -1:
ciphertext += key[alphabet.find(char)]
else:
ciphertext += char
return ciphertext
message = input("Type a message to encrypt: ")
encrypted = encryptMessage(message, key)
decrypted = decryptMessage(encrypted, key)
print("Plaintext message: " + message)
print("Encrypted message: " + encrypted)
print("Decrypted message: " + decrypted)
最佳答案
你应该使用内置的str.translate
message = "hello world"
alphabet = b"abcdefghijklmnopqrstuvwxyz"
key = b"zjrekydnqoluaxmicvpgtfbhws"
encrypted = message.translate(dict(zip(alphabet,key)))
print("E:",encrypted)
decrypted = encrypted.translate(dict(zip(key,alphabet)))
print("D:",decrypted)
关于python - 使用自己的字母字符串解密密文时遇到问题(python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74008889/