import hmac import hashlib from app.config import UserConfig def hash_password(password: str) -> str: """ Hashes the given password using sha256 algorithm and the user id as salt. :param password: The password to hash. :return: The hashed password. """ return hashlib.pbkdf2_hmac( "sha256", password.encode("utf-8"), UserConfig().userId.encode("utf-8"), 100000 ).hex() def check_password(password: str, hashed: str) -> bool: """ This function checks if the given password matches the hashed password. :param password: The password to check. :param hashed: The hashed password. :return: Whether the password matches. """ return hmac.compare_digest(hash_password(password), hashed)