3 回答

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超6個(gè)贊
鹽只需要是隨機(jī)且唯一的。由于它對(duì)攻擊者無(wú)濟(jì)于事,因此可以自由地知道它。許多系統(tǒng)會(huì)在哈希密碼旁邊的列中的數(shù)據(jù)庫(kù)中存儲(chǔ)純文本鹽。
鹽有助于確保兩個(gè)人(用戶A和用戶B)碰巧共享同一密碼,這種情況并不明顯。如果沒有每個(gè)密碼的隨機(jī)唯一鹽,則哈希值將相同,并且顯然,如果用戶A的密碼被破解,則用戶B必須具有相同的密碼。
它還可以防止哈希字典可以與已知密碼匹配的攻擊。例如彩虹桌。
同樣,使用內(nèi)置“工作因數(shù)”的算法也意味著隨著計(jì)算能力的提高,創(chuàng)建散列所必須經(jīng)過的算法也可以增加。例如,bcrypt。這意味著暴力攻擊的經(jīng)濟(jì)學(xué)變得難以為繼。據(jù)推測(cè),創(chuàng)建已知哈希表將變得更加困難,因?yàn)樗鼈冃枰ㄙM(fèi)更長(zhǎng)的時(shí)間來(lái)創(chuàng)建?!肮ぷ饕蜃印钡淖兓瘜⒁馕吨仨毥⒏嗟谋?。

TA貢獻(xiàn)1854條經(jīng)驗(yàn) 獲得超8個(gè)贊
我認(rèn)為您使問題復(fù)雜化了。
從問題開始:
您是否要保護(hù)弱密碼?
您是否要緩解彩虹攻擊?
您提出的機(jī)制確實(shí)可以防止彩虹攻擊,即使用戶A和用戶B具有相同的密碼,哈希密碼也將有所不同。確實(shí),給密碼添加鹽過于復(fù)雜,這似乎是一種相當(dāng)復(fù)雜的方法。
將數(shù)據(jù)庫(kù)遷移到另一臺(tái)服務(wù)器時(shí)會(huì)發(fā)生什么?
您是否可以更改每個(gè)數(shù)據(jù)庫(kù)的唯一值,如果可以,那么可以生成全局彩虹表,如果不能,則無(wú)法還原數(shù)據(jù)庫(kù)。
相反,我只需要添加額外的列并存儲(chǔ)適當(dāng)?shù)碾S機(jī)鹽即可。這將防止任何形式的彩虹攻擊。跨多個(gè)部署。
但是,它不能保護(hù)您免受暴力攻擊。因此,如果您嘗試保護(hù)密碼不正確的用戶,則需要在其他地方查找。例如,如果您的用戶具有4個(gè)字母的密碼,即使使用鹽和最新的哈希算法,也可能在幾秒鐘內(nèi)破解它。

TA貢獻(xiàn)1936條經(jīng)驗(yàn) 獲得超7個(gè)贊
我認(rèn)為您需要問自己:“與僅生成隨機(jī)鹽值并將其存儲(chǔ)起來(lái)相比,使其變得更加復(fù)雜,您希望從中獲得什么?” 您使算法變得越復(fù)雜,就越有可能不經(jīng)意地引入弱點(diǎn)。不管我怎么說,這聽起來(lái)都比較老套,但這很有幫助-您的應(yīng)用程序有什么特別之處,以至于它需要一種新穎的密碼哈希算法?
- 3 回答
- 0 關(guān)注
- 939 瀏覽
添加回答
舉報(bào)