def __init__(self, id_: str, password: str, nickname: str, description: str, sign_up_time: int, last_activity_time: int, salt: str = None): """If password has been salt-hashed, also give the salt""" self.validate_id(id_) if salt is None: self.validate_password(password) self.validate_nickname(nickname) self.validate_description(description) self.id_ = id_ if salt: self.salt = salt self.hashed_password = password else: self.salt = utils.generate_salt() self.hashed_password = utils.salted_hash(password, self.salt) self.nickname = nickname self.description = description self.sign_up_time = sign_up_time self.last_activity_time = last_activity_time
def is_password_correct(self, password: str) -> bool: return utils.salted_hash(password, self.salt) == self.hashed_password