如何在 python(django) 中散列字符串并将散列值与给定字符串进行比较

How to hash strings in python(django) and compare the hashed value with a given string

我正在开发一个允许用户注册然后登录的网络应用程序,我使用以下函数来散列密码

from passlib.hash import pbkdf2_sha256
import math

def encrypt_password(pswd):
    encrypt_pswd = pbkdf2_sha256.encrypt(pswd, rounds=(int(math.pow(len(pswd),3))), salt_size=(len(pswd)*2))
    return encrypt_pswd

def verify_password(pswd, e_pswd):
    en_pswd = encrypt_password(pswd)
    if en_pswd == e_pswd:
        return True
    else:
        return False

我的问题是,当我第二次对字符串进行哈希处理时,我对它进行哈希处理的结果并不相同。我该如何解决这个问题或者我可以使用什么方法散列密码,存储在数据库中并将该值与登录表单中的值进行比较

您需要使用verify功能

def verify_password(pswd, e_pswd):
    return pbkdf2_sha256.verify(pswd, e_pswd)