Spaces:
Running
Running
| # modules/crypto_engine.py | |
| import hashlib | |
| import json | |
| import secrets | |
| from typing import Dict, Any | |
| class CryptoEngine: | |
| def __init__(self): | |
| print("CryptoEngine geladen") | |
| self.algorithm = "sha256" | |
| def hash_text(self, text: str) -> str: | |
| if not text: | |
| return "" | |
| return hashlib.sha256(text.encode("utf-8")).hexdigest() | |
| def generate_token(self, length: int = 32) -> str: | |
| return secrets.token_hex(length) | |
| def verify_hash(self, text: str, hashed: str) -> bool: | |
| return self.hash_text(text) == hashed | |
| def secure_payload(self, payload: Dict[str, Any]) -> Dict[str, Any]: | |
| if not payload: | |
| payload = {} | |
| # Sort_keys=True sorgt für eine deterministische und stabile String-Form | |
| payload_string = json.dumps(payload, sort_keys=True) | |
| payload_hash = self.hash_text(payload_string) | |
| return { | |
| "payload": payload, | |
| "hash": payload_hash, | |
| "algorithm": self.algorithm, | |
| } | |
| def create_session_key(self) -> str: | |
| return secrets.token_urlsafe(64) | |