finsight1 / backend /api /utils /encryption.py
Samarth Naik
init
1a2b901
raw
history blame contribute delete
687 Bytes
import json
from cryptography.fernet import Fernet
from django.conf import settings
class EncryptionService:
def __init__(self):
key = settings.FIELD_ENCRYPTION_KEY
if not key:
raise ValueError("FIELD_ENCRYPTION_KEY is not set")
self.cipher = Fernet(key.encode())
def encrypt(self, data: dict) -> str:
json_data = json.dumps(data)
encrypted = self.cipher.encrypt(json_data.encode())
return encrypted.decode()
def decrypt(self, encrypted_data: str) -> dict:
decrypted = self.cipher.decrypt(encrypted_data.encode())
return json.loads(decrypted.decode())
encryption_service = EncryptionService()