Django从1.1升级到1.5 auth应用密码加密



我正在从django 1.1升级到django 1.5,并遵循以下指南:从1.1升级到1.5.1,除了阅读手册和发行说明。

我没有想到的一件事是auth app密码加密的向后不兼容,刚才我发现从django 1.4开始,加密算法已经从使用sha1更新为使用PBKDF2。

因为我已经有很多用户注册了,我没有办法让他们重新创建他们的帐户。所以我想知道你们中是否有人遇到过类似的问题,并找到了解决它的方法。

请让我知道是否有任何解决方案,这样我的用户仍然可以使用他们当前的密码。

谢谢!TS

查看文档: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列表的顶部。

最新更新