美文网首页
使用 Werkzeug 实现密码散列

使用 Werkzeug 实现密码散列

作者: reworthYan | 来源:发表于2018-01-11 16:41 被阅读0次

这一功能的实现只需要两个函数,分别用在注册用户和验证用户阶段。

  • generate_password_hash(password, method= pbkdf2:sha1 , salt_length=8) :这个函数将原始密码作为输入,以字符串形式输出密码的散列值,输出的值可保存在用户数据库中
  • check_password_hash(hash, password) :这个函数的参数是从数据库中取回的密码散列值和用户输入的密码进行比对。返回值为 True 表明密码正确。

Sample:

from werkzeug.security import generate_password_hash, check_password_hash
class User(UserMixin, db.Model):
    __tablename__ = 'users'
    #...
    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(64), unique=True, index=True)
    username = db.Column(db.String(64), unique=True, index=True)
    password_hash = db.Column(db.String(128))

    @property
    def password(self):
        raise AttributeError('password is not a readable attribute')

    @password.setter
    def password(self, password):
        self.password_hash = generate_password_hash(password)
    
    def verify_password(self, password):
        return check_password_hash(self.password_hash, password)

相关文章

  • 使用 Werkzeug 实现密码散列

    这一功能的实现只需要两个函数,分别用在注册用户和验证用户阶段。 generate_password_hash(pa...

  • 二、Flask笔记-认证登录

    • Flask-Login: 管理已登录用户的用户会话。• Werkzeug: 计算密码散列值并进行核对。• it...

  • 加密函数,加密手段。

    密码散列函数: 密码散列函数(英语:Cryptographic hash function),又译为加密散列函数、...

  • salt原理

    [浅谈密码加SALT原理] 我们知道,如果直接对密码进行散列,那么黑客可以对通过获得这个密码散列值,然后通过查散列...

  • HashMap深度分析疑问

    hashMap底层是基于散列算法实现,散列算法分为散列再探测和拉链式。hashmap使用了拉链式散列算法,在jdk...

  • shiro散列算法密码加盐测试精讲篇

    散列算法 通常需要对密码 进行散列,常用的有md5、sha, 对md5密码,如果知道散列后的值可以通过穷举算法,得...

  • 数据库中用户密码的存储方式-加盐

    盐(Salt),在密码学中,是指在散列之前将散列内容(例如:密码)的任意固定位置插入特定的字符串。这个在散列中加入...

  • javaScript数据结构--散列表

    散列集合是由一个集合构成,但是插入、移除、或获取元素时,使用的是散列函数 散列表的代码实现 // 散列表 func...

  • 基于密码散列PBKDF2的用户密码加密

    基于:密码散列PBKDF2的用户密码加密 为什么需要把应用程序中用户的密码进行散列化? 当设计一个需要接受用户密码...

  • 密码散列算法

    密码散列算法函数password_xxxx 下面总结就是:bcrypt很安全,比md5和sha1安全,但是有速度的...

网友评论

      本文标题:使用 Werkzeug 实现密码散列

      本文链接:https://www.haomeiwen.com/subject/whpgnxtx.html