我们有一个用PHP编写的系统,其中帐户密码存储为密码的漩涡散列的前128个字符。
我想过渡到使用Django处理登录而不更改数据库或要求用户更改密码。另外,我更喜欢坚持使用漩涡而不是Django内置的不那么安全的哈希。我发现了一个python(C)的Whirlpool实现,似乎工作正常。
如何更改Django密码检查功能以使用Whirlpool而不是SHA1 / MD5?
答案 0 :(得分:2)
基本上你想编写自己的身份验证后端。幸运的是,这可以很容易地完成。
这很简单:
class MyBackend:
def authenticate(self, username=None, password=None):
# Check the username/password and return a User.
然后您需要做的就是将AUTHENTICATION_BACKENDS
设置为('django.contrib.auth.backends.YourCustomBackend',)
来指定后端课程。
请参阅:http://docs.djangoproject.com/en/dev/topics/auth/#specifying-authentication-backends