Как найти пароль, хранящийся в django.contrib.auth.models. User.Пользователь

#django

#django

Вопрос:

Я хочу проверить, какой пароль я сохранил в базе данных для пользователя с именем «user».

Вот что я сделал.

 user@ubuntu:~/Documents/Django/django_bookmarks$ python manage.py shell
Python 2.7.1  (r271:86832, Apr 11 2011, 18:05:24) 
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from django.contrib.auth.models import User
>>> user = User.objects.get(id=1)
>>> user.username, user.password
(u'user', u'sha1$6934a$f92c73726c0bd5d4821013ad4161578a2114090f')
>>> 
>>> import hashlib
>>> hexhash = hashlib.sha1("password")
>>> hexhash
<sha1 HASH object @ 0x99c18c0>
>>> hexhash.digest
<built-in method digest of _hashlib.HASH object at 0x99c18c0>
  

Я помню, что я использовал ‘password’ для пароля пользователя, но я не могу это проверить.

Вопрос> Как я могу узнать, какой пароль для пользователя?

Спасибо

Ответ №1:

Вы можете проверить пароль пользователя с помощью check_password :https://docs.djangoproject.com/en/1.3/topics/auth/#django.contrib.auth.models.User.check_password

 from django.contrib.auth.models import User

user = User.objects.get(id=1)
user.check_password('password') # Returns True or False
  

Ответ №2:

в django был хэширован ваш пароль, это функция, которая работает только определенным образом.

Вы можете попробовать выполнить поиск по sha1 в базе данных хэшей, но они не гарантируют его нахождения.

Вам следует выполнить поиск ‘f92c73726c0bd5d4821013ad4161578a2114090f’. Хэш-функцией является sha1, а ключом, используемым для хэширования, является ‘6934a’

Ответ №3:

Вы не можете получить фактический пароль, который вы установили. метод set_password преобразует исходный пароль в код sha1. Вы можете только проверить свой пароль, правильный он или нет.

также проверьте эту ссылку

https://docs.djangoproject.com/en/1.3/topics/auth/#django.contrib.auth.models.User.check_password