Могу ли я узнать алгоритм хеширования, используемый в set_password () BaseUserManager
Ранее я предполагал, что он должен создавать такой же вывод (зашифрованный пароль), как make_password (). Но оба дают разные выходы
Например,
pbkdf2_sha256$120000$fpYd7FD1Cf3Z$sHRDYkxU6wST9i17AeVZeDPMGjwSpV4U1+8bxTC7B9U=
это хэшируется с помощью метода set_password () в моем приложении (это зашифрованная форма пароля, 'password'
затем в оболочке python,
>>>from django.contrib.auth.hashers import make_password
>>>make_password('password')
дает вывод
'pbkdf2_sha256$120000$PCjS8f7J2zU8$7pj4Xp5R1h935z9U3UyRlcprJpQRgUID+I9UQp+q1w4='
и я снова запускаю команду make_password ('password'), что интересно, на этот раз она также выдала другой вывод
'pbkdf2_sha256$120000$Jyhjh4luFw4F$wMKnv4BuNVw0NFpKgQjJNoyC6CuMqeXCo1neTEQ6S58='
Итак, я хочу добавить в приложение функцию смены пароля. Поэтому я хочу, чтобы мой пользователь набрал свой текущий пароль перед его изменением. Поскольку он хэшируется с помощью set_password (), я не могу проверить его напрямую. Я думаю, что единственный возможный способ - это хешировать введенный пароль, а затем проверить его с помощью исходного.
Кто-нибудь может мне помочь в ее решении?