2012-11-25 120 views
0

可能重複:
How does password salt help against a rainbow table attack?爲什麼鹽會阻止彩虹桌?

之前你提到它,我已經讀過this question.我沒有跟隨。

這是我對鹽/彩虹表的理解。請糾正我錯在哪裏。

  1. 用戶輸入raw password

  2. passwordsalt連接給出passwordsaltsaltpassword

  3. passwordsalt/saltpassword被哈希值爲hash

  4. 進入黑客。

  5. 黑客僱傭彩虹表將hash轉換爲passwordsalt/saltpassword

  6. 黑客手中有(例子)字符串letmein1horse

鑑於letmein1horse,不這僅僅意味着有兩種選擇:

  1. 密碼爲letmein1和鹽是horse

  2. 密碼是horse和鹽是letmein1

所以你明白爲什麼我很困惑。我的理解顯然是有缺陷的,因爲如果這是它的工作原理,顯然鹽會沒用。

OR:我的理解是否正確,是整個迭代計劃完全解除了這個明顯的弱點?

+0

彩虹表非常龐大,需要很長的時間才能計算出來,如果你用相同的字符串16字節的字符串爲所有密碼加上前綴,那麼你幾乎可以確定黑客沒有彩虹表。 – zneak

+0

..... off-topic vote?奇怪的。 – Aerovistae

+0

奇怪?奇怪的是,沒有閱讀常見問題解答並假設它是關於主題的。僅僅因爲它作爲一個程序員對你感興趣並不會成爲主題。這顯然是一個加密問題,而不是編程。 –

回答

2

彩虹表可以幫助你從散列到具有有限字符集的短序列。例如,彩虹表可能支持長度小於10個字符的所有字母數字序列。

鹽更長,使用更寬的字符集。如果您使用128位隨機鹽,則創建彩虹表變得難以處理。

0

攻擊者無法創建散列值(密碼+鹽)的預先計算的查找表(即彩虹表),因爲它需要對每種鹽進行大量計算。一個簡單的字典攻擊仍然是非常有可能的,儘管由於它不能被預先計算而慢得多。 source