Обновление Django с 1.1 до 1.5 шифрования пароля приложения авторизации

Я работаю над обновлением с django 1.1 до django 1.5 и следую этому руководству: Обновите Django с 1.1 до 1.5. 1, помимо чтения руководств и примечаний к выпуску.

Одна вещь, которую я не ожидал, - это обратная несовместимость шифрования пароля приложения auth, о которой только что я узнал, что, начиная с django 1.4, алгоритм шифрования был обновлен с использованием sha1 до использования PBKDF2.

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

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

Спасибо! ТС


person T.S.    schedule 24.03.2014    source источник


Ответы (1)


Взгляните на документы: https://docs.djangoproject.com/en/1.5/topics/auth/passwords/#how-django-stores-passwords

В нем говорится: «Когда пользователи входят в систему, если их пароли хранятся с каким-либо другим алгоритмом, отличным от предпочтительного, Django автоматически обновит алгоритм до предпочтительного. Это означает, что старые установки Django автоматически становятся более безопасными, когда пользователи входят в систему, и это также означает, что вы можете переключаться на новые (и более совершенные) алгоритмы хранения по мере их появления».

Поэтому я думаю, что если вы просто убедитесь, что бот sha1 и PBKDF2 находятся в PASSWORD_HASHERS (они по умолчанию), это должно просто работать. Пользователи по-прежнему смогут входить со старым хешем, а django автоматически обновит их пароль до нового.

Если вы не хотите, чтобы django автоматически обновлял пароли, вам просто нужно поставить sha1 и верхнюю часть списка PASSWORD_HASHERS.

person jproffitt    schedule 24.03.2014
comment
Потрясающий! Большое спасибо! Я пропустил часть из документов! Спасибо! - person T.S.; 26.03.2014