Python 如何实现Django';绕过身份验证时的密码哈希?

Python 如何实现Django';绕过身份验证时的密码哈希?,python,django,Python,Django,我们正在创建一个用户登录和注册系统,并决定绕过Django的auth(出于一些原因,这超出了本问题的范围) 我们仍然需要密码加密,并且仍然希望使用auth实现的密码(我相信是pbkdf2_sha256)。我们可以自己开发,但如果可以的话,我们宁愿使用Django(同样,不使用auth包) 查看我们的Django安装(我们有1.4.1,最新版本),我们找到了auth文件夹(和一个名为hasher.py的文件),但是,由于对python来说是新的,所以我们不确定从这里可以到哪里加密密码 谢谢 编辑:

我们正在创建一个用户登录和注册系统,并决定绕过Django的auth(出于一些原因,这超出了本问题的范围)

我们仍然需要密码加密,并且仍然希望使用auth实现的密码(我相信是pbkdf2_sha256)。我们可以自己开发,但如果可以的话,我们宁愿使用Django(同样,不使用auth包)

查看我们的Django安装(我们有1.4.1,最新版本),我们找到了auth文件夹(和一个名为hasher.py的文件),但是,由于对python来说是新的,所以我们不确定从这里可以到哪里加密密码

谢谢

编辑:

根据收到的评论和回答,我决定使用内置的方法和表。

如果您查看一下,您可以看到它调用了函数,这可能就是您正在寻找的

然后可以使用来验证密码

这确实增加了对
django.contrib.auth
的依赖,因为这些函数是在
django.contrib.auth.hasher
中定义的,但这在django中是标准的,所以我认为这不是问题。 此外,
django.contrib.auth.hasher
不依赖于
django.contrib.auth
中的任何内容

但是,我只能支持评论中给您的建议,即您可能应该使用默认的django auth软件包——特别是考虑到我们这里讨论的是安全关键部分


顺便说一句,用于散列密码的算法实际上是由设置控制的。

如果您对一种语言/平台不熟悉,那么特意绕过常用的操作方式是一个非常糟糕的主意……这就是为什么我们不采用自己的方式。。。但您仍然在绕过正常的身份验证包。你说这超出了这个问题的范围,但我怀疑不是。如果我们不知道你为什么不走最简单的路线,我们怎么知道一个可能的答案是否会违背这个原因呢?但是如果我使用的函数与Django加密密码时使用的函数相同,那么区别是什么呢?我不是想争论,只是想理解。我没有试图修改任何代码,只是试图避免在mysql中为我们永远不会使用的管理面板创建额外的表。不同的是,您是在为自己创建工作,没有什么好处。创建这些额外的表需要多少成本?您认为集成现有的身份验证库需要多长时间?我们正在使用auth包,只是试图绕过创建一堆mysql表。我们保持django文件不变,并使用django在加密密码时使用的函数。实际上,您没有使用auth包,而是在其中使用了两个函数。老实说,我并不认为使用自定义身份验证而不是Django的stock auth软件包是有充分理由的。尤其是如果这样做的唯一原因是为了避免创建一些表(即
syncdb
将创建的表)。