如何一起使用crypt()和password_hash()函数?

时间:2018-02-27 04:27:37

标签: php password-hash

我是PHP新手,现在正在学习密码安全性。我在PHP documentation中了解了crypt()password_hash()函数。我仅了解crypt()password_hash()函数,但我如何一起使用它们?我是否还需要在crypt()函数中定义一个salt,将其留空,如password_hash(crypt($password,''),PASSWORD_DEFAULT);

1 个答案:

答案 0 :(得分:4)

函数password_hash()在内部使用crypt()函数。它是一个包装器,负责处理所有可能的陷阱,例如生成加密安全盐,或选择合适的算法。

所以不需要组合这些功能,也不需要自己生成盐,只需使用password_hash()password_verify()即可。

// Hash a new password for storing in the database.
// The function automatically generates a cryptographically safe salt.
$hashToStoreInDb = password_hash($_POST['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($_POST['password'], $existingHashFromDb);