Files
ChatBot/utils/password_utils.py
2025-10-03 15:03:18 +02:00

27 lines
955 B
Python

import hashlib
import secrets
import logging
logger = logging.getLogger(__name__)
class PasswordUtils:
@staticmethod
def hash_password(password: str, salt: str = None) -> tuple[str, str]:
if salt is None:
salt = secrets.token_hex(32)
password = password.strip()
salted_password = password + salt
hash_object = hashlib.sha512(salted_password.encode('utf-8'))
password_hash = hash_object.hexdigest()
logger.debug("Password hashed successfully")
return password_hash, salt
@staticmethod
def verify_password(password: str, stored_hash: str, salt: str) -> bool:
computed_hash, _ = PasswordUtils.hash_password(password, salt)
return secrets.compare_digest(computed_hash, stored_hash)
@staticmethod
def hash_password_simple(password: str) -> str:
password = password.strip()
return hashlib.sha512(password.encode('utf-8')).hexdigest()