繁体   English   中英

具有argon2_cffi的hashnig密码

[英]hashnig passwords with argon2_cffi

我试图了解如何使用argon2_cffi将散列密码存储在数据库中。

具体来说,我正在使用此代码将哈希密码写入我的PostgreSQL表中。

from argon2 import PasswordHasher

ph = PasswordHasher()

new_user = User(
    name=POST.get('name', 'default_value'),
    fullname=POST.get('fullname', 'default_value'),
    nickname=POST.get('nickname', 'default_value'),
    hashed_password=ph.hash(POST.get('password', 'default_value')))
session.add(new_user)

但是,尽管用户插入的文本相同,但是每次用户在我的表单中插入密码时,这都会产生不同的密码。

当然,我知道这是他的正确行为,但是如果我不能产生相同的哈希值,我应该怎么做才能验证给定的注册用户是否插入了正确的密码?

抱歉,在文档中发现自己...

import argon2

ph = argon2.PasswordHasher()
def login(db, user, password):
    hash = db.get_password_hash_for_user(user)

    # Verify password, raises exception if wrong.
    ph.verify(hash, password)

    # Now that we have the cleartext password,
    # check the hash's parameters and if outdated,
    # rehash the user's password in the database.
    if ph.check_needs_rehash(hash):
        db.set_password_hash_for_user(user, ph.hash(password))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM