Не существует существенной разницы между User.objects.create_user()
и user.set_password()
, поскольку первый использует второй.
В принципе, пароли находятся в строке с форматом <algorithm>$<iterations>$<salt>$<hash>
согласно docs. Различия могут исходить от переменной PASSWORD_HASHERS
. Может быть, один пароль был создан с одним хашером и другим паролем с другим. Но если вы сохраните тех хашеров в переменной, упомянутой выше, все должно быть хорошо, пользователи смогут ее изменить и т. Д. Вы можете прочитать об этом в небольшом уведомлении после раздела bcrypt.
Также документы для django.contrib.auth
упаковка может быть полезна. Link.
UPDATE:
Если вы найдете документацию старой версии Джанго (1.3, например), вы увидите, что
Предыдущие версии Django, такие как 0.90, используются простые MD5 хэшей без пароля соли. Для обратной совместимости все еще поддерживаются; они автоматически преобразуются в новый стиль при первом правиле check_password() для данного пользователя.
Так что я думаю, что ответ может быть где-то здесь. Но это действительно зависит от того, насколько унаследован ваш проект, поэтому вы можете решить, нормально ли это или что. В любом случае, вы можете указать check_password()
. Или вы можете просто отправить по электронной почте своего пользователя с уведомлением «сменить пароль». На самом деле есть много факторов.
Но пароль swcond, похоже, не в формате ' $ $ $ '. Это прекрасно? –
Проверить обновление ответа – valignatev