如何将散列密码发送到DRF并进行身份验证

时间:2017-05-09 16:19:18

标签: django angular authentication hash django-rest-framework

我正在为Django中的用户进行身份验证,我知道Django会将所有密码保存在数据库中,

所以为了保护用户凭据,我必须在我的前端(Angular2)中将密码哈希,然后再将其发送到我的后端(Django rest框架)。

问题在于我不知道Django是否会删除密码或者是否能够将其与现有密码进行比较,如果是这样,任何一个引脚都可以指向我正确的方式。

感谢任何帮助,谢谢

1 个答案:

答案 0 :(得分:2)

您无需在Angular中哈希密码。 Django不会理解Angular的密码,因为Django以不同的方式散列密码,并且没有信息表明你发送的是哈希。即使你能够以相同的方式使用它们,Django也会再次哈希,这是行不通的。也就是说,

H(password) != H(H(password))

对于单个哈希函数H

将密码作为纯文本发送到服务器。通过TLS / SSL传输所有数据来保护密码。 Django将接受纯文本密码,比较哈希值,并正常验证用户身份。