2017-06-16 105 views
0

我正在使用以下PHP代碼來散列用戶的密碼。PHP中的password_hash()

$options = [ 
'cost' => 10, 
'salt' => mcrypt_create_iv(22, MCRYPT_DEV_URANDOM), 
]; 

$hash = password_hash("rasmuslerdorf", PASSWORD_BCRYPT, $options); 

此方法是否安全?密碼是否被鹽漬?

+3

用於文檔['password_hash()'](http://php.net/manual/en/function .password-hash.php)**特別說** ___不要組成你自己的SALT___除非你是一個加密專家,否則你不會像功能那樣做一個好的工作。此外,創建自己的SALT的能力已被棄用(即將被刪除),所以爲什麼還要編寫不會很快運行的代碼! – RiggsFolly

+0

*「此方法是否安全?密碼是否被鹽漬?」* - 簡短回答:是的。較長的回答:諮詢問題已關閉的重複項。如果您仍然不確定,請不要使用它,也不要上網。 –

+0

請注意,在PHP 7.0.0中,salting已棄用*「** Warning **從PHP 7.0.0開始不推薦使用salt選項,現在最好只使用默認生成的salt。」*按照http://php.net/manual/en/function.password-hash.php –

回答

0

在大多數情況下,最好省略salt參數。如果沒有這個參數,該函數將從操作系統的隨機源生成一個加密安全的鹽。

價:php.net/manual/en/function.password-hash.php#111620

+0

雖然是正確的,但這是一個弱的答案。 –

+0

這也直接從用戶提供的說明提供的手冊中引用http://php.net/manual/en/function.password-hash.php#111620 - 你應該說明了這一點。編輯:這個評論按原來的帖子https://stackoverflow.com/revisions/44587681/1 –

+0

那麼與鹽一起傳遞的'成本'呢? –