使用argon2\u cffi的hashnig密码

2024-09-30 06:12:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图理解如何使用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)

但是,每次用户在“我的窗体”中插入密码时,都会生成不同的密码,尽管插入的文本是相同的。你知道吗

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


Tags: 用户namedefault密码newgetvaluenickname
1条回答
网友
1楼 · 发布于 2024-09-30 06:12:04

抱歉,我在the docs发现自己。。。你知道吗

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))

相关问题 更多 >

    热门问题