我要生成一個隨機的鹽,然後將其存儲在用戶數據庫中的密碼一起。所以我想這是這樣的。
$salt = //random salt code
$hpassword = crypt($password,$salt)
我要生成一個隨機的鹽,然後將其存儲在用戶數據庫中的密碼一起。所以我想這是這樣的。
$salt = //random salt code
$hpassword = crypt($password,$salt)
嘗試散列現有字段(如用戶名)並將其用於salt。
版本的PHP 5.5將內置在支持BCrypt,功能password_hash()
和password_verify()
。對於PHP 5.3.7和更高版本,存在compatibility pack,在那裏您可以找到如何使用函數mcrypt_create_iv()
創建鹽的良好實現,請參見第86和121行。
由於此兼容包,您還應該考慮直接使用這個功能,而不是自己寫,在這裏你可以找到example。特別是BCrypt的鹽的創造是一件棘手的事情,人們會犯很多錯誤。
P.S.鹽應儘可能(從操作系統的隨機源讀取)作爲隨機的,因爲這是使它獨特和確定性計算機上不可預知的的最佳途徑。
'crypt'對salt值有非常特殊的要求。你想使用什麼樣的散列? –
我聽說bcrypt是最好的,所以我猜? –