2017-05-09 27 views
0

我的工作在Django認證用戶,我知道Django的保存在數據庫中的散列的所有密碼,如何發送散列密碼,DRF並獲得認證

所以爲了保護用戶憑據,我必須在將密碼發送到我的後端(Django rest框架)之前在我的前端(Angular2)中散列密碼。

的問題是,我不知道是否Django的節選哈希密碼或者是他能夠比較它與現有的一個,如果是的話,可以在任何一個針點我的正確途徑。

任何幫助表示讚賞,感謝

+0

不,你必須發送散列的口令。然後Django散列密碼並比較散列存儲的散列。 – knbk

+0

是的,@knbk是正確的,你可能想看一下https://github.com/GetBlimp/django-rest-framework-jwt進行驗證。 –

+0

是啊,我目前正在使用DRF-jwt併發送密碼而沒有散列,我只是想知道這是否會影響數據傳輸(安全方面) –

回答

2

你不需要在角散列密碼。 Django不會理解由Angular散列的密碼,因爲Django以不同方式散列密碼,並且沒有任何信息表明您發送的內容是散列。即使你能夠以相同的方式擁有它們,Django也會再次散列它,這是行不通的。也就是說,

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

對於單個哈希函數,H

發送密碼以純文本到服務器。通過TLS/SSL傳輸所有數據來保護密碼。 Django將接受純文本密碼,比較哈希值,並以正常方式驗證用戶身份。