我正在尝试编写一个程序来加密和解密消息。以下是回溯: 回溯(最近一次呼叫最后一次): 文件“C:\Users\notelling\OneDrive\Desktop\pyprojects\crypto.py”,第15行,在 f=Fernet(键) NameError:未定义名称“key”
这是我的密码:
from cryptography.fernet import Fernet
import os
if os.path.isfile("encryption.key"):
file = open("encryption.key", "rb")
filec = file.read().decode()
else:
key = Fernet.generate_key()
file = open('encryption.key', 'wb')
file.write(key.encode()) # The key is type bytes still
file.close()
print("Key generated.")
mode = input("Please enter mode (e/d):")
if mode == 'e':
message = input("What is your message to encrypt?").encode()
f = Fernet(key)
encrypted = f.encrypt(message)
passkey = open("encryptedmsg.txt", "wb")
passkey.write(encrypted)
passkey.close()
elif mode == 'd':
passread = open("encryptedmsg.txt", "rb")
contents = passread.read()
f = Fernet(key)
decrypted = f.decrypt(encrypted).decode()
print("Decrypted message is ", decrypted)
input()
这与密码学无关,而是纯Python特有的错误
变量键分配在第一个“else”块的第7行
除非明确定义,否则该变量在该块之外不可用
更多参考资料:
https://docs.python.org/3.8/tutorial/classes.html#class-and-instance-variables
https://docs.python.org/3.8/tutorial/classes.html#private-variables
相关问题 更多 >
编程相关推荐