werkzeug:generate_password_hash()函数如何破解相同密码设置,验证用户对应的“密码散列值”

本文探讨了Python的werkzeug库中generate_password_hash()函数的工作原理。即使相同密码在不同用户间生成不同的密码散列值,该函数在用户登录验证时通过反向解码检查输入密码是否与数据库中的散列值匹配,而非重新加密。举例说明了两个不同用户的散列值验证过程,证实了这一验证机制。
摘要由CSDN通过智能技术生成

接上章节: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=
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值