python aes 加密解密 cryptography.fernet
python aes 加密解密
pip install cryptography
from cryptography.fernet import Fernet
from dotenv import load_dotenv
import os
# 加载环境变量
load_dotenv()
# 获取密钥(生产环境从环境变量读取,开发环境自动生成)
def get_fernet_key():
key = os.getenv("FERNET_KEY")
if not key:
# 开发环境自动生成并保存到 .env 文件
key = Fernet.generate_key().decode()
with open(".env", "a") as f:
f.write(f"\nFERNET_KEY={key}")
print("生成新的 FERNET_KEY 并保存到 .env 文件")
return key.encode()
# 初始化加密器
fernet = Fernet(get_fernet_key())
# 加密函数
def encrypt_data(data):
if not data:
return None
return fernet.encrypt(data.encode()).decode()
# 解密函数
def decrypt_data(data):
if not data:
return None
try:
return fernet.decrypt(data.encode()).decode()
except Exception as e:
print(f"解密失败: {e}")
return None