python - 使用 Fernet 进行密码加密
问题描述
我是 python 新手,我正在做这些小项目,以便我可以构建自己。这是一个小项目,它只会使用主密码添加和查看用户名和密码。我能够通过加密文件中的密码添加用户名和密码。但是要查看密码,它在 23 和 39 行显示了两个问题。而且主密码也不起作用。
from cryptography.fernet import Fernet
'''
def write_key():
key = Fernet.generate_key()
with open("key.key", "wb") as key_file:
key_file.write(key)'''
def load_key():
file = open("key.key", "rb")
key = file.read()
file.close()
return key
master_pwd = input("What is the master password? ")
key = load_key() + master_pwd.encode()
fer = Fernet(key)
def view():
with open('passwords.txt', 'r') as f:
for line in f.readlines():
data = line.rstrip()
user, passw = data.split("|")
print("User:", user, "| Password:",
fer.decrypt(passw.encode()).decode())
def add():
name = input("Account name: ")
pwd = input("Input password: ")
with open('passwords.txt', 'a') as f:
f.write(name + "|" + fer.encrypt(pwd.encode()).decode() + "\n")
while True:
mode = input("Would you like to add a new password or view existing ones?(Add/View):\nOtherwise press 'Q' to Quit: \n").lower()
if mode == "q":
break
elif mode == "view":
view()
elif mode == "add":
add()
else:
print("Invalid mode.")
continue
解决方案
推荐阅读
- ios - Swift NSTiimer 不遵循指定的时间间隔
- python-3.x - 试图从 selenuim 获取日期/平均值
- java - Java - 创建股票 JPanel 期间的问题
- wordpress - 如何创建 .htaccess 文件以在 Docker 中使用路径重写 Wordpress URL?
- java - 在 Java 中进行铸造 - (Parent) 这是什么意思?
- swift - 如何通过网络抓取获取列表元素?
- python - 具有多个标题的 CSV。如何维护参考标题行
- ms-access - 如何修改共享点文档库中的 Access DB 文件
- bash - Bash:找到某个分区所在的磁盘并将结果放入变量中
- pycharm - PyCharm 在文档字符串中是否支持 Markdown?