from functools import lru_cache from cryptography.fernet import Fernet from app.config import settings @lru_cache def _fernet() -> Fernet: return Fernet(settings.token_encryption_key.encode()) def encrypt_token(plaintext: str) -> str: return _fernet().encrypt(plaintext.encode()).decode() def decrypt_token(ciphertext: str) -> str: return _fernet().decrypt(ciphertext.encode()).decode()