2013-01-17 100 views

回答

0

嘗試散列現有字段(如用戶名)並將其用於salt。

試一下:http://en.wikipedia.org/wiki/PBKDF2

+3

有些人說你不應該使用現有的字段,但有一個隨機的鹽:http://stackoverflow.com/a/2248920/14955 – Thilo

+0

其他人不同意:)如果密碼足夠強大(遞歸哈希)彩虹表變得毫無用處。 (另一方面,如果您的儲存鹽類被泄漏,請告訴您的密碼,如果您使用弱算法)... – boruch

+0

在使用它作爲鹽之前,先用您自己的算法對現有字段進行加擾,那麼該如何處理? –

1

版本的PHP 5.5將內置在支持BCrypt,功能password_hash()password_verify()。對於PHP 5.3.7和更高版本,存在compatibility pack,在那裏您可以找到如何使用函數mcrypt_create_iv()創建鹽的良好實現,請參見第86和121行。

由於此兼容包,您還應該考慮直接使用這個功能,而不是自己寫,在這裏你可以找到example。特別是BCrypt的鹽的創造是一件棘手的事情,人們會犯很多錯誤。

P.S.鹽應儘可能(從操作系統的隨機源讀取)作爲隨機的,因爲這是使它獨特確定性計算機上不可預知的的最佳途徑。