SkyOSFullCore / modules /crypto_engine.py
sky-meilin's picture
Update modules/crypto_engine.py
69de4ca verified
Raw
History Blame Contribute Delete
1.11 kB
# 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)