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