2015-03-31 55 views
0

因此,在用戶註冊時,用戶輸入(密碼+隨機鹽)並將其發送到服務器。在用戶註冊時在客戶端散列密碼,數據庫僅存儲散列。登錄時如何再次使用相同的鹽?

登錄時用戶輸入(密碼+隨機鹽?)並將其發送到服務器。

在登錄部分進行此項工作我需要做些什麼?

+0

我的意思是說,是鹽存儲在什麼地方或什麼? – AlexMcG 2015-03-31 02:03:51

+0

是的,salt與哈希密碼一起存儲在db中。 [谷歌搜索這個問題](https://www.google.com.au/search?site=&source=hp&q=how+does+password+salt+work&oq=how+does+password+salt+work&gs_l=hp.3。 .733.9129.0.9402.58.26.1.0.0.2.1047.2704.3-2j2j7-1.5.0.msedr ... 0 ... 1c.1.64.hp..55.3.1540.0.dieL90iQgmY)會返回很多結果,但你檢查出任何這些資源? – 2015-03-31 02:05:33

+0

我相信你會把鹽和其餘的用戶信息一起儲存在數據庫中。不確定,但。 – iamnotmaynard 2015-03-31 02:06:04

回答

1

salt是由服務器應用程序生成的,而不是由用戶生成的,它將與您的密碼一起存儲在數據庫中(這不是祕密)。用戶提供的鹽只是第二個密碼。

鹽的目的是,攻擊者不能建立一個單一的彩虹表,一次破解數據庫的所有密碼。即使它是已知的,它也會這樣做。不要混淆鹽和胡椒粉,如果你有興趣如何添加服務器端的祕密,你可以看看我的教程關於secure password storing

+0

第一次傳輸過程中以純文本發送的密碼也是如此?在登錄期間,客戶端在將密碼發送到服務器之前如何加密密碼? – AlexMcG 2015-03-31 09:22:12

+0

好的指南順便說一句。它僅涵蓋服務器端,但通過 – AlexMcG 2015-03-31 09:26:12

+0

@AlexMcG - 通常密碼通過加密的SLL連接(HTTPS)發送明文。對於一個網站來說,沒有其他選擇,因爲無論您發送給客戶端的腳本如何,ManInTheMiddle都將始終能夠運行相同的腳本(或者將它們除去)。如果用戶安裝了Android應用程序,則可以使用公私鑰加密來保護髮送的密碼。 – martinstoeckli 2015-03-31 11:34:34

相關問題