2012-06-09 150 views
2

當我通過一些登錄表單設計時,我開始懷疑密碼是否存儲在哈希中,假設有人入侵了一個網站。哈希和登錄

並假設該網站的用戶在其他網站使用完全相同的密碼。

如果是這樣,只使用散列,是否可以登錄到其他網站?

回答

1

通常網站使用隨機鹽,所以即使您的密碼在兩個網站上是相同的,不同的網站將存儲不同的哈希。

即使網站沒有使用隨機鹽,並且密碼總是散列到相同的東西,您仍然需要知道密碼才能登錄到這些網站。

0

散列密碼只是防禦黑客的第一道防線。 如果黑客破壞了您的網站並獲取了散列密碼的數據庫,他們可以使用映射到非常頻繁使用的密碼的哈希「字典」。

一旦黑客知道您正在使用的散列方案(MD5或SHA-1等),那麼他可以確定原始密碼。這是因爲這些哈希方案對於輸入和輸出是1到1。密碼總是會產生相同的散列,並且可以顛倒散列以找到原始密碼。

爲了保護自己,你應該使用密碼,然後散列salt +密碼組合。每個密碼都應該和它自己獨特的鹽配對。

更多,請參閱:http://codingmayhem.tumblr.com/post/24552289519/storing-passwords-securely

1

不,你不能從哈希因此實際的密碼。這是一個main property of cryptographic hashing functions

給定一個散列ħ它應該是很難找到的任何消息使得ħ =散列()。這個概念與one-way function有關。缺少此屬性的函數易受preimage attacks的影響。

你只能嘗試猜測使用適當攻擊的密碼(例如字典攻擊或暴力破解)找到collision,我。即一個輸入值導致相同的散列值。

現在有一些技術可以幫助攻擊者加速查找衝突的過程,比如將已知散列值映射到輸入值的預先計算的查找表。 Rainbow tables是這種查找表的高級變體。