如何在Django中将用户id传递给自定义密码哈希器?

如何在Django中将用户id传递给自定义密码哈希器?,django,django-authentication,Django,Django Authentication,我已经迁移了密码散列,这些散列是使用用户id添加的 我有一个自定义hasher,它扩展了PBKDF2SHA1PasswordHasher。但是这些方法的参数不包括任何用户信息 类MyHasher(PBKDF2SHA1PasswordHasher): def加密(自我、密码、salt、iters、keylen、digestmod): 如何在encrypt方法中检索用户id,以便正确验证传入的密码?如果要从自定义格式迁移,则只需使用自定义哈希验证现有密码即可。db中的密码字段的格式为算法$salt

我已经迁移了密码散列,这些散列是使用用户id添加的

我有一个自定义hasher,它扩展了PBKDF2SHA1PasswordHasher。但是这些方法的参数不包括任何用户信息

类MyHasher(PBKDF2SHA1PasswordHasher):
def加密(自我、密码、salt、iters、keylen、digestmod):

如何在encrypt方法中检索用户id,以便正确验证传入的密码?

如果要从自定义格式迁移,则只需使用自定义哈希验证现有密码即可。db中的密码字段的格式为
算法$salt$hash
,因此Django在验证密码时可以访问salt。然后,Django将使用
PASSWORD\u hasher
设置中的第一个条目并重新刷新密码。如果您试图使用hasher对新密码进行哈希运算,那么这将更加复杂,恐怕我无法帮您解决。嗨@Alasdair,我正在从非Python系统迁移密码OK,因此,如果您在Django用户表中以
算法$salt$hash
的格式存储密码,那么Django将能够在验证密码时读取salt。我不明白你的
encrypt
方法是做什么的,也不知道它在哪里被调用——据我所知,它不是密码哈希器类的标准方法。