使用 Fernet 在 Python 中实现密码管理器
使用 Fernet 在 Python 中实现密码管理器非常简单,下面是一个示例,演示了如何使用 Fernet 加密密码,并将其存储在本地文件中:
1、首先,在你的 Python 项目中安装 cryptography 库:
pip install cryptography
2、然后,创建一个密码管理器模块 password_manager.py,用于加密密码和存储加密后的密码。代码如下:
from cryptography.fernet import Fernet # 密钥加密和解密时必须相同 SECRET_KEY = b'your-secret-key-here' class PasswordManager: def __init__(self, key): self.key = key def encrypt_password(self, password): fernet = Fernet(self.key) return fernet.encrypt(password.encode()).decode() def decrypt_password(self, encrypted_password): fernet = Fernet(self.key) return fernet.decrypt(encrypted_password.encode()).decode() def save_password(self, username, password): with open('passwords.txt', 'a') as f: f.write(f'{username}:{self.encrypt_password(password)}\n') def get_password(self, username): with open('passwords.txt', 'r') as f: for line in f: parts = line.strip().split(':') if parts[0] == username: return self.decrypt_password(parts[1]) return None
在上述代码中,我们定义了 Fernet 密钥和密码管理器类 PasswordManager。在构造函数中,我们传入 Fernet 密钥。然后,我们定义了三个方法:encrypt_password 用于加密密码,decrypt_password 用于解密密码,save_password 用于将加密后的密码存储到本地文件中,get_password 用于获取指定用户的密码。
3、然后,创建一个名为 main.py 的 Python 程序,用于演示密码管理器的功能。代码如下:
from password_manager import PasswordManager # 创建密码管理器实例 password_manager = PasswordManager(SECRET_KEY) # 存储密码 password_manager.save_password('pidancode', 'pidancode.com') password_manager.save_password('pidegg', '123456') # 获取密码 password1 = password_manager.get_password('pidancode') password2 = password_manager.get_password('pidegg') print('pidancode password:', password1) print('pidegg password:', password2)
在上述代码中,我们首先导入密码管理器模块 password_manager.py。然后,我们创建了一个密码管理器实例 password_manager,并使用它存储了两个用户的密码。最后,我们获取了指定用户的密码,并将其打印出来。
4、运行 main.py,你将看到输出的密码已经被加密了。存储在 passwords.txt 文件中的加密密码将无法被轻易地破解。
pidancode password: pidancode.com pidegg password: 123456
相关文章