Код: Выделить всё
email: [email protected]
password: ccpass!ccpass
Код: Выделить всё
pbkdf2_sha256$260000$alGB1h2BRHwn83nz9fSJ3V$qippfbL8g59KPoDh+cIEh70TQCjuWeH8017VcLLpDIY=
Мне нужно запустить чистый скрипт Python, который внутри своей части проверяет, соответствует ли пароль хешу. Я нашел библиотеку passlib. Могу предоставить пароль и раунды. Но откуда берется соль Джанго?
Код: Выделить всё
from passlib.hash import pbkdf2_sha256
password = 'ccpass!ccpass'
db_hashed_password = 'pbkdf2_sha256$260000$alGB1h2BRHwn83nz9fSJ3V$qippfbL8g59KPoDh+cIEh70TQCjuWeH8017VcLLpDIY='
salt = db_hashed_password.split('$')[2].encode()
pbkdf2_sha256.hash(password, rounds=260000, salt=salt)
Код: Выделить всё
$pbkdf2-sha256$260000$YWxHQjFoMkJSSHduODNuejlmU0ozVg$qippfbL8g59KPoDh.cIEh70TQCjuWeH8017VcLLpDIY
В pbkdf2-sha256 вместо подчеркивания используется тире, но Это не проблема. Я могу это исправить.
Основная проблема в том, что я получаю . вместо + в фактической части хеша. Как это исправить? Могу ли я слепо заменить все . на + ?
Я тоже не понимаю, почему вычисленная соль отличается от исходной соли?
Подробнее здесь: https://stackoverflow.com/questions/739 ... f2-library