Мені потрібно надати доступ до бази даних Djangoвід іншого програмного забезпечення python, заснованого на користувачах, вже створених у Django. У мене все в порядку доступу, мені просто потрібен фрагмент коду для створення пароля Django, як це робить модуль автентифікації адміністратора.
Який був би найкращий спосіб зробити це? Зауважте, що, якщо можливо, я не хочу мати для цього весь пакет Django.
Дуже дякую
Відповіді:
4 для відповіді № 1Весь код для створення та перевірки паролів користувача знаходиться в django.contrib.auth.models
.
Зокрема, подивіться на методи User.set_password
і User.check_password
. Вам потрібно буде витягти ці два біти та код Django, на який вони посилаються, щоб створити та перевірити паролі користувачів проекту відповідно до Django.
4 для відповіді № 2
Зрозумів, як це працює. Я написав невелику функцію, щоб перевірити пароль користувача:
def check_passwd (user, raw_password):
import hashlib
# ... get "hsh_passwd" from database based on "user" ...
hsh_passwd = hsh_passwd.split("$")
salt = hsh_passwd[1]
hsh = hsh_passwd[2]
if hsh == hashlib.sha1(salt + raw_password).hexdigest():
return True
return False
Звичайно, перевірок не так багато, і це не є гнучким, але це те, що я шукав.