如何在Django身份验证中使用Whirlpool哈希?

时间:2010-02-22 21:38:12

标签: python django sha1 authentication

我们有一个用PHP编写的系统,其中帐户密码存储为密码的漩涡散列的前128个字符。

我想过渡到使用Django处理登录而不更改数据库或要求用户更改密码。另外,我更喜欢坚持使用漩涡而不是Django内置的不那么安全的哈希。我发现了一个python(C)的Whirlpool实现,似乎工作正常。

如何更改Django密码检查功能以使用Whirlpool而不是SHA1 / MD5?

1 个答案:

答案 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