2012-04-22 109 views
2

我一直在環顧四周,爲了安全地存儲密碼,似乎有很多不同的方式,比其他人更受歡迎。假設我從某種意義上來說並不使用像crypt()這樣的工作,我應該如何存儲隨機生成的鹽以便與sha256或sha512一起使用?我想過如何做到這一點,但我堅持如何有效地工作。將它們全部存儲在數據庫中並且不得不使用它們似乎效率低下。我很想知道是否實際上有一種通常使用的方法,或者這是否是唯一的方法?提前致謝。如何在數據庫中存儲爲哈希創建的鹽?

回答

4

通常,salt與密碼哈希存儲在同一列或相鄰列中。對此沒有任何不足之處。爲每個密碼使用不同的鹽是什麼使你的密碼系統健壯。

+0

好吧,我明白了。但是,如果他們有鹽,難道不會讓暴力更容易嗎?拿着手中的鹽,所有需要做的事情就是把鹽加上用來強姦它的任何東西。我認爲將它與所有的鹽一起儲存在一個單獨的表中會更有意義。 – Andy 2012-04-22 07:15:17

+0

@Andy:如何把它放在一個單獨的桌子使它更安全?鹽不應該是祕密的;它只是爲每個用戶提供一個有效的獨特散列函數。防止暴力攻擊的方法是使用像bcrypt這樣的緩慢散列函數。 – 2012-04-22 07:19:51

+0

@Andy,有了鹽,就很容易找到與哈希碰撞所需的數據。同樣的數字運算仍然必須發生。分開醃製每個密碼僅意味着如果他們要找到碰撞並使用它來進入您的網站,他們只有一個帳戶,而不是全部。有鹽沒有幫助......它只是在生成散列時使用鹽。 – Brad 2012-04-22 07:21:54