我正在为Django中的用户进行身份验证,我知道Django会将所有密码保存在数据库中,
所以为了保护用户凭据,我必须在我的前端(Angular2)中将密码哈希,然后再将其发送到我的后端(Django rest框架)。
问题在于我不知道Django是否会删除密码或者是否能够将其与现有密码进行比较,如果是这样,任何一个引脚都可以指向我正确的方式。
感谢任何帮助,谢谢
答案 0 :(得分:2)
您无需在Angular中哈希密码。 Django不会理解Angular的密码,因为Django以不同的方式散列密码,并且没有信息表明你发送的是哈希。即使你能够以相同的方式使用它们,Django也会再次哈希,这是行不通的。也就是说,
H(password) != H(H(password))
对于单个哈希函数H
。
将密码作为纯文本发送到服务器。通过TLS / SSL传输所有数据来保护密码。 Django将接受纯文本密码,比较哈希值,并正常验证用户身份。