2012-04-22 82 views
1

嗨,我想我可能做了這個錯誤的方式任何人都可以幫助解釋你如何散列/鹽密碼。你是從客戶端還是web服務端執行?Authenticaion,哈希,鹽,https進程?

我已經具有密碼數據成員,在我服務,我做的是保存之前,這個創建密碼的哈希/鹽datacontract:

So here is the process in which I was thinking. 

Rest Service has https for secure connection 
User creates account (along with password) 
//to stop packet sniffing when user creates account https is used during POST so no one can see the password? 
web service then creates a hash of the password to store it 
//so if anyone did get access to the service/database they couldnt make much use of the data in terms of breaching accounts 
Then some means to authenticate that user there after 

這是正確的嗎?

回答

2

聽起來像你在正確的軌道上。在客戶端應該永遠不會出現散列和鹽值,因爲攻擊者可以訪問該代碼。而且https確實可以確保連接,阻止他人閱讀數據。

在身份驗證過程中,您可以執行相同的操作:獲取用戶通過https輸入的密碼,哈希值/鹽值,然後將結果哈希與數據庫中的值進行比較。當然,如果您將一個Student對象返回給客戶端,它應該不包含任何值。

明智的做法是不要重複使用StudentPassword屬性,因爲現在您無法確定其是否包含明文密碼或哈希值。