0

我有设置任务来针对 .NET Identity 数据库对 django 应用程序用户进行身份验证。我发现了许多相关主题,但它们要么太旧,要么无法解决我需要的确切问题 - Django 的密码哈希等效项。

4

1 回答 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 回答