Spaces:
Sleeping
Sleeping
| import os | |
| from cryptography.fernet import Fernet | |
| import logging | |
| logger = logging.getLogger(__name__) | |
| class EncryptionManager: | |
| def __init__(self, encryption_key: str | None = None): | |
| env_key = encryption_key or os.getenv("MASTER_ENCRYPTION_KEY") | |
| if not env_key: | |
| raise ValueError("MASTER_ENCRYPTION_KEY is required.") | |
| self.key = env_key.encode("utf-8") | |
| self.cipher_suite = Fernet(self.key) | |
| def encrypt_data(self, plain_text: str) -> str: | |
| if isinstance(plain_text, str): | |
| plain_text = plain_text.encode("utf-8") | |
| cipher_bytes = self.cipher_suite.encrypt(plain_text) | |
| return cipher_bytes.decode("utf-8") | |
| def decrypt_data(self, cipher_text: str) -> str: | |
| try: | |
| cipher_bytes = cipher_text.encode("utf-8") | |
| plain_bytes = self.cipher_suite.decrypt(cipher_bytes) | |
| return plain_bytes.decode("utf-8") | |
| except Exception as e: | |
| logger.error(f"Decryption failed! There may be a key mismatch. Details: {e}") | |
| raise | |