password_hash($password, PASSWORD_DEFAULT);
功能來保存用戶插入密碼MySQL數據庫,但 當我嘗試使用
$verify_password=password_verify ($password,PASSWORD_DEFAULT);
檢查登錄它告訴我錯誤所以誰能告訴我什麼是錯誤。在密碼驗證php函數的默認參數如password_verify (string $password , string $hash)
什麼是$ hash在此。
password_hash($password, PASSWORD_DEFAULT);
功能來保存用戶插入密碼MySQL數據庫,但 當我嘗試使用
$verify_password=password_verify ($password,PASSWORD_DEFAULT);
檢查登錄它告訴我錯誤所以誰能告訴我什麼是錯誤。在密碼驗證php函數的默認參數如password_verify (string $password , string $hash)
什麼是$ hash在此。
使用password_hash代替使用password_verify。
$verify_password=password_hash($password,PASSWORD_DEFAULT);
password_hash()創建使用強大的單向散列算法,生成新密碼哈希。 password_hash()與crypt()兼容。因此,由crypt()創建的密碼哈希可以與password_hash()一起使用。目前支持
以下算法:
PASSWORD_DEFAULT - 使用bcrypt算法(默認爲PHP 5.5.0的)。請注意,隨着新的更強大的算法添加到PHP中,此常量將隨時間而改變。出於這個原因,使用這個標識符的結果的長度會隨着時間而改變。因此,建議將結果存儲在可擴展超過60個字符的數據庫列中(255個字符將是一個不錯的選擇)。
PASSWORD_BCRYPT - 使用CRYPT_BLOWFISH算法創建哈希。這將使用「$ 2y $」標識符產生標準的crypt()兼容散列。結果將始終爲60個字符的字符串,或者失敗時爲FALSE。 支持的選項:
如果省略,每個密碼散列都會通過password_hash()生成一個隨機salt。這是預定的操作模式。
如果省略,將使用默認值10。這是一個很好的基準成本,但您可能需要考慮根據您的硬件來增加它。
我知道這先生。 manish ji但我的問題只是如何檢查登錄 –
傳遞給password_verify()函數的參數是錯誤的。使用存儲的哈希作爲第二個參數來代替:
// Hash a new password for storing in the database.
// The function automatically generates a cryptographically safe salt.
$hashToStoreInDb = password_hash($password, PASSWORD_DEFAULT);
// Check if the hash of the entered login password, matches the stored hash.
// The salt and the cost factor will be extracted from $existingHashFromDb.
$isPasswordCorrect = password_verify($password, $existingHashFromDb);
哈希是什麼'password_hash'給你.. – tkausl
其實我使用默認的散列函數即 password_hash($密碼,PASSWORD_DEFAULT);所以你可以告訴我什麼是在這個senario散列。 –
'password_hash' __returns__散列,你確實將這個散列保存到數據庫中,對吧? – tkausl