2 回答

TA貢獻1725條經驗 獲得超8個贊
他可以刪除加鹽,得到沒有加鹽的哈希密碼。
除了這部分之外的一切都是正確的。
想象一下,你有一個密碼通行證和兩個鹽:s1,s2。
哈希(s1 + 通過)= 123
哈希(s2 + 通過)= 456
因此,您的數據庫中將有兩條存儲記錄:
s1 $ 123
s2$456
刪除鹽部分不會讓對手在任何地方得到攻擊,因為他仍然需要破解兩個不同的哈希摘要123和456 。
另一方面,一旦您從用戶那里獲得明文,它將使您無法重建您的哈希值。
想象一下他們給你發pass。您要做的是從存儲在您的數據庫中的哈希中獲取鹽子字符串,例如s2 $456,然后將其與明文連接,然后將哈希(s2 + pass)與上面的 456 進行比較。如果沒有將鹽存儲在數據庫中,您將無法執行此操作,這就是它的必要性。

TA貢獻1848條經驗 獲得超2個贊
您可以取回鹽,但這并不意味著您可以獲得未加鹽的密碼哈希?!皳Q句話說,一旦黑客得到 hashedSecret = hashedSecret[encodedSaltSize:],他就可以使用彩虹攻擊來取回密碼,從而使鹽無用?!?nbsp;具有誤導性。攻擊者可以獲得鹽和散列密碼,但這不允許“彩虹攻擊”。
“彩虹攻擊”中的攻擊是:一次生成一個巨大的彩虹表,預先。該列表是一對 (cleartextpassword,passwordhash) 條目。生成此表非常耗時(如果包含大量密碼,可能會變得很大,如果包含所有密碼,則可能會變得很大?。??!安屎绻簟敝械墓羰牵耗恍枭纱瞬屎绫?em>一次,并且可以使用它非??焖俚夭檎覕蛋偃f個密碼哈希的明文密碼。
由于上面 bcrypt 代碼中的每個密碼都有自己的 鹽,因此您不能使用一個彩虹表:您必須為每個鹽創建一個彩虹表。使“彩虹攻擊”無用。
- 2 回答
- 0 關注
- 98 瀏覽
添加回答
舉報