使用密钥持久化技术,将对称密钥保存到本地文件,每次使用时从文件中读取密钥,避免每次都重新生成新的密钥。
示例代码:
import os
import hashlib
from cryptography.fernet import Fernet
def generate_key():
"""
生成对称密钥并保存到本地
"""
key = Fernet.generate_key()
with open('key.txt', 'wb') as key_file:
key_file.write(key)
def load_key():
"""
从本地读取对称密钥
"""
with open('key.txt', 'rb') as key_file:
key = key_file.read()
return key
def encrypt_message(message):
"""
使用对称密钥加密信息
"""
key = load_key()
f = Fernet(key)
encrypted_message = f.encrypt(message.encode())
return encrypted_message
def decrypt_message(encrypted_message):
"""
使用对称密钥解密信息
"""
key = load_key()
f = Fernet(key)
decrypted_message = f.decrypt(encrypted_message)
return decrypted_message.decode()
# 生成对称密钥并保存到本地
if not os.path.exists('key.txt'):
generate_key()
# 使用对称密钥加密信息并保存到文件
message = 'Hello World!'
encrypted_message = encrypt_message(message)
with open('encrypted_message.bin', 'wb') as message_file:
message_file.write(encrypted_message)
# 从文件中读取加密信息并解密
with open('encrypted_message.bin', 'rb') as message_file:
encrypted_message = message_file.read()
decrypted_message = decrypt_message(encrypted_message)
print(decrypted_message)
以上示例代码使用了Python的密码学库cryptography中的Fernet对称加密算法实现了对称加密、解密和持久化密钥的功能。可以将密钥保存到本地文件,每次使用时从文件中读取密钥,避免每次都重新生成新
下一篇:避免每次调用 "__new__"