0

我正在从django 1.1升级到django 1.5,并且遵循本指南:Upgrade Django from 1.1 to 1.5.1除了阅读手册和发行说明。Django从1.1升级到1.5 auth应用程序密码加密

但我没想到的一件事是auth应用程序密码加密的后向不兼容性,刚才我发现自django 1.4以来,加密算法已经使用sha1更新为使用PBKDF2。

由于我有大量的用户已经注册,我不能要求他们重新创建他们的帐户。所以我想知道你们中的任何一个人是否有类似的问题,并找到解决方法。

请让我知道,如果有任何解决方案,这样我的用户仍然有效的当前密码。

谢谢! TS

回答

0

看一看文档:https://docs.djangoproject.com/en/1.5/topics/auth/passwords/#how-django-stores-passwords

它说,“当用户登录时,如果他们的密码存储比最佳算法之外的其他任何东西,Django会自动算法升级到较好的。这意味着当用户登录时,旧的Django安装会自动变得更加安全,这也意味着您可以在创建新的(更好的)存储算法时自动切换。“

所以我想如果你只是确保bot sha1和PBKDF2在PASSWORD_HASHERS(它们是默认的),它应该只是工作。用户仍然可以使用旧的散列登录,并且django会自动更新他们的密码。

如果你不想让django自动更新密码,你只需要把sha1和PASSWORD_HASHERS列表的顶部。

+0

太棒了!非常感谢!我错过了文档中的部分!谢谢! –