lurien-matrix / backend /src /utils /hashing.py
imDrizzle's picture
Super-squash branch 'main' using huggingface_hub
e84e8e5
Raw
History Blame Contribute Delete
849 Bytes
"""
Utility: Hashing and security functions.
"""
import hashlib
import hmac
import secrets
import os
def generate_api_key() -> str:
"""
Generate a secure random API key.
Format: fw_live_<32 random hex chars>
"""
return f"fw_live_{secrets.token_hex(32)}"
def hash_api_key(key: str) -> str:
"""Hash an API key for storage using HMAC-SHA256 (never store raw keys)."""
pepper = os.getenv("API_KEY_PEPPER", "default_insecure_pepper")
return hmac.new(
pepper.encode("utf-8"),
key.encode("utf-8"),
hashlib.sha256
).hexdigest()
def hash_prompt(prompt: str) -> str:
"""
Hash a prompt for logging. NEVER store raw prompts.
Uses SHA-256 for deterministic, irreversible hashing.
"""
return hashlib.sha256(prompt.encode("utf-8")).hexdigest()