如何在python中加密用户输入?

如何在python中加密用户输入?,python,encryption,caesar-cipher,Python,Encryption,Caesar Cipher,我试图用python编写一段代码,对用户输入进行加密。 例如,如果我写“name”,输出应该是“obnf”。但问题是,现在的输出仅为“o”,因此只有第一个字母通过循环,其余字母被忽略。 有什么建议吗? 这是我的密码 userInput = input("write something: ") letters = iter(["A","B","C","D", "E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U",

我试图用python编写一段代码,对用户输入进行加密。 例如,如果我写“name”,输出应该是“obnf”。但问题是,现在的输出仅为“o”,因此只有第一个字母通过循环,其余字母被忽略。 有什么建议吗? 这是我的密码

userInput = input("write something: ")


letters = iter(["A","B","C","D", "E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","X","Y","Z","0","1","2","3","4","5","6","7","8","9","a","b","c", "d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"])


def Encoding(user_input):
    encrypted_msg = ""
    for i in range(len(user_input)):
        char = user_input[i]
        if char in letters:
            encrypted_msg += next(letters)
    return encrypted_msg

print(Encoding(userInput))

一个interator只能被遍历一次,然后它就耗尽了。改用
列表


考虑并快速替换。

下面的代码解决了问题:

从cryptography.fernet导入fernet
def编码(用户输入,键):
返回Fernet(key).encrypt(字节(bytearray(用户输入,编码='UTF-8'))
def解码(加密_输入,密钥):
返回Fernet(密钥)。解密(加密输入)。解码(“UTF-8”)
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
userInput=input(“写东西:”)
key=Fernet.generate_key()
encryptedInput=编码(用户输入,密钥)
打印(加密输出)
decryptedInput=解码(encryptedInput,密钥)
打印(解密输入)

干杯

这是一个凯撒密码,移位为1。这份复制件有19个答案,你可以从中选择,这些答案将揭示你到底做错了什么。顺便说一句,你的代码并不完全正确。而不是在迭代中使用<代码> NeX/CODE,考虑转换为列表并查找字母数组中字符所在的索引,然后递增1以访问最终字符。