我有设置任务来针对 .NET Identity 数据库对 django 应用程序用户进行身份验证。我发现了许多相关主题,但它们要么太旧,要么无法解决我需要的确切问题 - Django 的密码哈希等效项。
1 回答
0
所以我最终学习了这个来源https://github.com/aspnet/AspNetIdentity/blob/master/src/Microsoft.AspNet.Identity.Core/Crypto.cs 并写了我的 django 版本。该代码适用于 django 2.1.1 和 .NET 4.5
from django.contrib.auth.hashers import pbkdf2
import hashlib
from base64 import b64decode
identity_PasswordHash = "AOOVvPns8Nov6CsJDTAWz+QDOEO2csh60m5aYyX2Vn7LsNDhiiZ5UaSDWr5izwWeHA=="
pwd_plain = 'Hellow123';
def dotnet_identity_check_password(password, hash):
binsalt = b64decode(hash)[1:17]
binpwd = b64decode(hash)[17:]
genpwd = pbkdf2(password, binsalt, 1000, digest=hashlib.sha1, dklen=32)
if genpwd == binpwd:
return True
return False
if dotnet_identity_check_password(pwd_plain,identity_PasswordHash):
print("OK")
else:
print("Fail")
于 2018-12-24T17:12:22.777 回答