/ / Створення паролів Django SHA1 - django, django-admin, password

Створіть паролі Django SHA1 - django, django-admin, паролі

Мені потрібно надати доступ до бази даних 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

Звичайно, перевірок не так багато, і це не є гнучким, але це те, що я шукав.