from module.auth.core.password_hasher.password_hasher import PasswordHasher
import bcrypt


class BcryptPasswordHasher(PasswordHasher):

    def hash_password(self, password: str) -> str:
        return bcrypt.hashpw(
            password.encode('utf-8'), bcrypt.gensalt()
        ).decode('utf-8')

    def check_password(self, password: str, hashed_password: str) -> bool:
        return bcrypt.checkpw(
            password.encode('utf-8'), hashed_password.encode('utf-8')
        )
