import hashlib from cryptography.fernet import Fernet import base64 # 生成哈希密钥 def generate_key(username, password): key = username.encode() + password.encode() hash_key = hashlib.sha256(key).hexdigest().encode()[:32] base64_key = base64.urlsafe_b64encode(hash_key) return base64_key # 加密函数,将明文加密成密文 def encrypt(message, key): cipher = Fernet(key) ciphertext = cipher.encrypt(message) with open('encrypted.bin', 'wb') as f: f.write(ciphertext) return ciphertext # 解密函数,将密文解密成明文 def decrypt(ciphertext, key): cipher = Fernet(key) plaintext = cipher.decrypt(ciphertext) return plaintext if __name__ == "__main__": # 测试加解密函数 username = input('请输入用户名:') password = input('请输入密码:') # 生成哈希密钥 key = generate_key(username, password) # # 加密数据并保存到文件中 # message = b'Hello, World!' # ciphertext = encrypt(message, key) # with open('encrypted.bin', 'wb') as f: # f.write(ciphertext) # 解密文件并输出明文数据 with open('encrypted.bin', 'rb') as f: ciphertext = f.read() key = generate_key(username, password) plaintext = decrypt(ciphertext, key) print(f'{username}的私密信息:{plaintext.decode()}')