我目前正在尝试创建一个加密信息的程序,将加密信息添加到字典中,将字典保存在 pickle 文件中。然后在代码的后面,加载 pickle 文件,在字典中搜索密钥,如果找到密钥,则解密信息并将其显示在屏幕上。 但是我不确定我是否以正确的方式进行了处理。 每次我试图在 pickle 文件中的字典中搜索应该在其中的键时,它都会说找不到该键。因此没有什么可显示的。
这就是我将加密信息放入字典然后放入 pickle 文件的方式。
pickle.dump(password_dictionary, open("dictionary.pkl", 'wb'))
dictionary = "dictionary.pkl"
def encrypt_and_dump(username, password):
f=Fernet(key)
user_pass = (username + password)
b_user_pass = user_pass.encode()
encrypted_user_pass = f.encrypt(b_user_pass)
with open(dictionary, 'ab+') as f:
a = {site:[encrypted_user_pass]}
pickle.dump(a,f)
这就是我尝试搜索、加载和解密信息的方式。
while True:
r_site = str(input("Enter the Site Name to retrieve your credentials: "))
password_dictionary = pickle.load(open("dictionary.pkl", "rb"))
if r_site in password_dictionary:
print("ACCOUNT FOUND")
load_encrypted = password_dictionary.get(r_site)
c_password = str(pwinput.pwinput("Confirm your Password Manager password to decrypt login credentials: "))
if c_password == m_password:
decrypt_load_encrypted = f.decrypt(load_encrypted)
print(decrypt_load_encrypted)
break
else:
print("Site Account not found.")
一旦我进行搜索,它只会打印“找不到站点帐户”。 我正在尝试做的事情可能吗?还是我应该以完全不同的方式来做? 任何帮助将不胜感激!