接上章节:https://blog.csdn.net/Miao_Hen/article/details/105157765
讲述:为什么generate_password_hash()函数针对同一密码,生成不同的“密码散列值”,而用户登录时可以判断密码是否正确
清晰的描述:A/B两个用户,都设置密码为“cat”,但是A/B两个用户生成的“password_hash”不一致;当A用户登录时,怎么确定自己再次输入“cat”,会匹配到正确的“password_hash”?
解答:因为当用户调用下方的方法时,并不是将“cat”重新进行加密为新的“密码散列值”,而是将数据库保存的“password_hash”进行反向解码,确认解码结果是否和“cat"一致,是:返回True,不是:返回False
def verify_password(self, password):
return check_password_hash(self.password_hash, password)
举例:
# 模板
class User(UserMixin, db.Model):
__tablename__ = 'users'
id = db.Column(db.Integer, primary_key=True)
email = db.Column(db.String(64), unique=True, index=