Password API
string password_hash ( string $password , integer $algo [, array $options ] )
- Создает хэш пароля.
- Поддерживаемые алгоритмы:
- PASSWORD_DEFAULT
- PASSWORD_BCRYPT (использует CRYPT_BLOWFISH)
- options может содержать solt и cost.
$hashed = password_hash("password", PASSWORD_BCRYPT);
echo $hashed;
$hashed = password_hash(
"password", PASSWORD_BCRYPT, ['cost' => 12]
);
echo $hashed;
boolean password_verify ( string $password , string $hash )
- Проверяет, что переданный хэш соответствует переданному паролю.
- Так как результат password_hash() уже хранит в себе алгоритм, соль и цену алгоритма, то вся информация для работы password_verify() уже есть в хэше пароля.
boolean password_needs_rehash ( string $hash , integer $algo [, array $options ] )
- Проверяет, что данный хэш соответствует алгоритму и опциям.
// Assume $hashed contains the originally stored password
if (password_verify($_POST['password'], $hashed)) {
// Password is valid
if (password_needs_rehash($hashed, PASSWORD_DEFAULT)) {
$newhash = password_hash(
$_POST['password'], PASSWORD_DEFAULT
);
// Store the $newhash
}
}