0

到目前为止,我使用 SHA256 对密码进行哈希处理(我知道,很糟糕),现在我想切换到 Argon2。

我的问题是,如果我理解正确,我现在必须将纯文本密码存储在会话变量中。

现在我将 SHA256 哈希值存储在会话变量中,并且我有一个check_user函数可以检查用户是否仍然登录我的大多数函数。

def check_user(request):
    if 'email' not in request.session or not request.session['email']:
        return False
    if 'pw_hash' not in request.session or not request.session['pw_hash']:
        return False
    try:
        Clients.objects.get(pk=request.session['email'])
    except Clients.DoesNotExist:
        return False
    if request.session['pw_hash'] != Clients.objects.get(pk=request.session['email']).password:
        return False
    return True

如果我切换到 Argon2,据我了解,我必须将纯密码存储在会话变量中才能使用PasswordHasher().verify,这是 IMO 的一种不好的做法。

这个问题的推荐方法是什么?

4

0 回答 0