是否可以更改django_auth中的哈希算法?

是否可以更改django_auth中的哈希算法?,django,django-authentication,Django,Django Authentication,我有一个运行的维基用户。现在我想在Django中编写一个应用程序来执行特定任务 我必须使用我的“旧”用户/组数据库(该数据库的密码哈希算法与django_auth不同),并时不时地对其进行同步,因为我的用户已经有了一个登录名,该登录名在任何地方都必须相同 我也想使用django_auth 是否可以更改django_auth中的哈希算法? 因此django auth使用我编写的函数来检查插入的密码是否正确 先谢谢你,塞纳德。=) 引用文档: Django通过查阅密码散列器设置来选择要使用的算法。这

我有一个运行的维基用户。现在我想在Django中编写一个应用程序来执行特定任务

我必须使用我的“旧”用户/组数据库(该数据库的密码哈希算法与django_auth不同),并时不时地对其进行同步,因为我的用户已经有了一个登录名,该登录名在任何地方都必须相同

我也想使用django_auth

是否可以更改django_auth中的哈希算法?

因此django auth使用我编写的函数来检查插入的密码是否正确

先谢谢你,塞纳德。=)

引用文档:

Django通过查阅密码散列器设置来选择要使用的算法。这是Django安装支持的哈希算法类的列表。此列表中的第一个条目(即settings.PASSWORD\u hasher[0])将用于存储密码,而所有其他条目都是可用于检查现有密码的有效hasher。这意味着,如果您想使用不同的算法,您需要修改密码散列器,以便在列表中首先列出您的首选算法

您可以编写自定义设置,只需从中复制粘贴哈希值,进行自定义并添加到设置:

PASSWORD_HASHERS = [
    'myApp.myUtils.CesarPasswordHasher',
    'django.contrib.auth.hashers.PBKDF2PasswordHasher',
    'django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher',
    'django.contrib.auth.hashers.Argon2PasswordHasher',
    'django.contrib.auth.hashers.BCryptSHA256PasswordHasher',
]

您可以编写一个包含自己的
authenticate
函数的函数,以根据自定义哈希检查密码。当然,您需要某种方法来区分不同类型的用户。

是的,这是可能的。有关示例,请参见。在Django 1.4中更容易更改:

您所说的“不同类型的用户”是什么意思?我理解您的意思是,您有一些用户想要使用现有的Django auth hashing。不,我想要使用现有的wiki数据库用户和组。在需要时同步(例如登录失败)。无论如何,谢谢:)酷,我们忽略我的回答-自定义身份验证后端仍然是一条路要走。我会投票支持你的评论,但我还不被允许=)祝你愉快链接被破坏。嗨@shaikmoeed,谢谢,这是'12'的答案!更新。谢谢更新。如果我使用的是
django\u auth\u ldap
库,这些哈希器是否适用于ldap登录?你能在空闲时间调查一下吗?