Python Django ASP.NET Identity пароль хеш-эквивалент - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть задача установки для аутентификации пользователей приложения django по базе данных .NET Identity.Я нашел много связанных тем, но они были слишком стары или не решали точно, что мне нужно - эквивалент хеш-пароля для Django.

1 Ответ

0 голосов
/ 24 декабря 2018

Итак, я изучаю этот источник 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")
...