Build lightweight AI agent admin

This commit is contained in:
Codex
2026-06-08 18:14:59 +08:00
commit e164840f43
2530 changed files with 435693 additions and 0 deletions
+43
View File
@@ -0,0 +1,43 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""敏感信息加解密(数据库连接密码等)"""
import base64
import hashlib
import logging
from app.config import settings
logger = logging.getLogger(__name__)
_fernet = None
def _get_fernet():
global _fernet
if _fernet is not None:
return _fernet
try:
from cryptography.fernet import Fernet
except ImportError as exc:
raise RuntimeError("cryptography package is required for secret encryption") from exc
secret = getattr(settings, "DB_CONN_SECRET_KEY", None) or settings.JWT_SECRET_KEY
key = base64.urlsafe_b64encode(hashlib.sha256(secret.encode("utf-8")).digest())
_fernet = Fernet(key)
return _fernet
def encrypt_secret(value: str) -> str:
if not value:
return ""
return _get_fernet().encrypt(value.encode("utf-8")).decode("utf-8")
def decrypt_secret(value: str) -> str:
if not value:
return ""
try:
return _get_fernet().decrypt(value.encode("utf-8")).decode("utf-8")
except Exception as exc:
logger.warning("Failed to decrypt secret: %s", exc)
return ""