from cryptography.fernet import Fernet def make_fernet(key: str) -> Fernet: return Fernet(key.encode() if isinstance(key, str) else key) def encrypt(value: str, key: str) -> str: return make_fernet(key).encrypt(value.encode()).decode() def decrypt(encrypted: str, key: str) -> str: return make_fernet(key).decrypt(encrypted.encode()).decode() def is_valid_fernet_key(key: str) -> bool: try: Fernet(key.encode() if isinstance(key, str) else key) return True except Exception: return False