2013-08-05 42 views
0

據我所知,SHA1()是不安全的,但我的客戶的網站使用這樣的哈希密碼:使用與鹽SHA1()安全嗎?

$salt = '123abckkk'; 
$hash = sha1($salt.$password); 

現在我猜,如果有人闖入數據庫竊取的哈希值,那麼他們將不能夠破解他們,因爲沒有一個哈希將有來自常用詞,因爲他們有「123abckkk」在這混了。

不知道這是如何工作的,但如果這是不是一種安全的方法,那麼請告訴我爲什麼。

+0

鹽需要是隨機的。 –

+0

那麼你是說攻擊者會弄清楚鹽分,並且能夠將密碼中的鹽分開? –

+1

另外閱讀[爲什麼常見的散列函數,如md5()和sha1()不適合密碼?](http://www.php.net/manual/en/faq.passwords.php#faq.passwords.fasthash ) –

回答

1
  1. You should not use md5 or sha1 to hash passwords,改用password_hash

    • 哈希密碼是不是你的安全。這是爲了您的用戶的安全。我們假設攻擊者具有數據庫的轉儲,並有很長的時間來扭轉散列成密碼。散列函數花費的時間越長,攻擊者破解這些密碼的時間就越長。延遲他們的時間可以用來提醒用戶,並告訴他們改變在不同的網絡密碼。

  2. 哈希值應該是隨機的,而不是一組字符串,如123abckkk

    • 如果兩個密碼相同,它們將具有相同的散列。如果一個密碼被破解,那麼其他具有相同密碼的人也將被破解。
+0

鹽應該是唯一的,但不一定是隨機的。 – Gumbo

+0

是的。鹽可能會順序進入。如'aa','ab','ac'等 –