2024-09-30 04:38:33 发布
网友
我使用了Django并用make_password和check_password处理了密码
make_password
check_password
但是,我需要将框架更改为fastapi
fastapi
使用fastapi,我需要验证Django创建的密码,因为我应该使用与数据相同的数据库
如何以与Django兼容的方式处理密码
数据库中存储的密码格式如下'pbkdf2_sha256$100000$Dl6Atsc1xX0A$0QFvZLpKdcvcmCNixVCdEA5gJ67yef/gkgaCKTYzoo4='
'pbkdf2_sha256$100000$Dl6Atsc1xX0A$0QFvZLpKdcvcmCNixVCdEA5gJ67yef/gkgaCKTYzoo4='
我发现passlib支持Django兼容的方式
passlib
from django.contrib.auth.hashers import make_password from passlib.handlers.django import django_pbkdf2_sha256 password = 'testpassword123' django_hash = make_password(password) is_verified = django_pbkdf2_sha256.verify(password, django_hash) if is_verified: print('Correct!!')
本文档介绍Django如何存储密码:
https://docs.djangoproject.com/en/2.2/topics/auth/passwords/
我使用Node.js后端执行类似于您所说的操作。您可以对$字符进行拆分,以获得验证密码所需的部分。以下是我所做工作的一个片段:
$
const [, iterations, salt,] = hash.split('$'); const algorithm = 'pbkdf2_sha256'; salt = (salt === '') ? makeSalt() : salt; const key = crypto.pbkdf2Sync(password, salt, iterations, 32, 'sha256'); const rtnval = algorithm + '$' + iterations + '$' + salt + '$' + key.toString('base64');
这将为您提供一些可用于匹配给定用户的数据库条目的内容
我发现
passlib
支持Django兼容的方式本文档介绍Django如何存储密码:
https://docs.djangoproject.com/en/2.2/topics/auth/passwords/
我使用Node.js后端执行类似于您所说的操作。您可以对
$
字符进行拆分,以获得验证密码所需的部分。以下是我所做工作的一个片段:这将为您提供一些可用于匹配给定用户的数据库条目的内容
相关问题 更多 >
编程相关推荐