0

我有一個需要登錄的系統,但是我建立它的人需要在登錄時傳輸密碼才能保證安全(即使使用SSL)。所以我使用Digest訪問認證的變體來傳輸登錄請求。我現在面臨的唯一問題是如何將密碼存儲在數據庫中(最好是在安全的哈希散列中),以便它們可以與摘要請求一起使用,並且密碼在任何時候都不是非哈希格式,除了客戶端瀏覽器幾秒鐘。我應該如何存儲密碼?

所以,簡而言之,我如何安全地存儲密碼,但是允許一個摘要(與數據庫的salt有不同且不斷變化的隨機數)進行身份驗證?

回答

1

據我瞭解,這個機制將是這樣的:那麼在服務器上

hash(nonce + hash(password + salt)) 

,你只需要存儲hash(password + salt)salt

+0

這是我最初的想法,但爲了做到這一點,我必須傳輸密碼保護的salt。這不會破壞密碼的安全嗎? – topherg 2012-07-15 14:12:48

+0

@cgoddard:不。在設計合理的系統中,瞭解鹽對攻擊者無助。 – 2012-07-15 14:13:42

+0

好啊,但是你的意思是設計合理嗎?我需要考慮哪些因素? – topherg 2012-07-15 14:14:37

0

您可能需要查看this Perl模塊的源代碼;它管理* nix帳戶。