试图加密字典中的信息,将其保存在另一个文件中,稍后再搜索字典

问题描述 投票:0回答:0

我目前正在尝试创建一个加密信息的程序,将加密信息添加到字典中,将字典保存在 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.")

一旦我进行搜索,它只会打印“找不到站点帐户”。 我正在尝试做的事情可能吗?还是我应该以完全不同的方式来做? 任何帮助将不胜感激!

python dictionary encryption pickle
© www.soinside.com 2019 - 2024. All rights reserved.