Spaces:
Running
Running
| """AES-256 encryption for sensitive DB values (API keys, tokens).""" | |
| import base64 | |
| import os | |
| from cryptography.fernet import Fernet | |
| from cryptography.hazmat.primitives import hashes | |
| from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC | |
| def _get_fernet() -> Fernet: | |
| secret = os.getenv("SECRET_KEY", "change-me-in-production") | |
| salt = b"ai_media_os_salt" | |
| kdf = PBKDF2HMAC(algorithm=hashes.SHA256(), length=32, salt=salt, iterations=100_000) | |
| key = base64.urlsafe_b64encode(kdf.derive(secret.encode())) | |
| return Fernet(key) | |
| def encrypt(value: str) -> str: | |
| return _get_fernet().encrypt(value.encode()).decode() | |
| def decrypt(value: str) -> str: | |
| return _get_fernet().decrypt(value.encode()).decode() | |