我们正在创建一个用户登录和注册系统,并决定绕过Django的auth(由于一些原因,这超出了这个问题的范围)。
我们仍然需要对我们的密码进行加密,并且仍然希望使用auth实现的密码(pbkdf2_sha256,我相信)。我们可以自己滚动,但如果可以的话,宁愿使用Django(再次,不使用auth包)。
看看我们的Django安装(我们有1.4.1,最新版本),我们找到了auth文件夹(以及一个名为hashers.py的文件)但是,对python来说是新手,我不确定从哪里开始用于加密我们的密码。
谢谢!
编辑:
根据收到的评论和回答,我决定使用内置的方法和表格。
答案 0 :(得分:3)
如果您查看the source of django's set_password
,可以看到它调用了make_password
函数,这可能就是您要查找的内容。
然后,您可以使用django's check_password
来验证密码。
这确实增加了对django.contrib.auth
的依赖,因为这些函数在django.contrib.auth.hashers
中定义,但这是Django的标准,所以我不认为这是一个问题。
此外,django.contrib.auth.hashers
不依赖于django.contrib.auth
的任何内容。
但是,我可以只支持您应该使用默认django auth软件包的评论中给出的建议 - 特别是考虑到我们在这里谈论安全关键部分。
顺便说一下,用于散列密码的算法实际上是由the PASSWORD_HASHERS
设置控制的。