23 lines
530 B
Python
23 lines
530 B
Python
from cryptography.fernet import Fernet
|
|
|
|
from app.config import settings
|
|
|
|
_fernet: Fernet | None = None
|
|
|
|
|
|
def _get_fernet() -> Fernet:
|
|
global _fernet
|
|
if _fernet is None:
|
|
key = settings.ENCRYPTION_KEY
|
|
if isinstance(key, str):
|
|
key = key.encode()
|
|
_fernet = Fernet(key)
|
|
return _fernet
|
|
|
|
|
|
def encrypt(plaintext: str) -> str:
|
|
return _get_fernet().encrypt(plaintext.encode()).decode()
|
|
|
|
|
|
def decrypt(ciphertext: str) -> str:
|
|
return _get_fernet().decrypt(ciphertext.encode()).decode()
|