• password_hash — cria um password hash.
• password_verify — verifica se um password corresponde com um hash.
// Usando as opções default
echo password_hash("rasmuslerdorf", PASSWORD_DEFAULT) . "\n";
// Resultado: $2y$10$.vGA1O9wmRjrwAVXD98HNOgsNpDczlqm3Jq7KnEd1rVAGv3Fykk1a
// Definindo o salt *
$options = [
'salt' => 'BCryptRequires22Chrcts'
];
echo password_hash("rasmuslerdorf", PASSWORD_BCRYPT, $options) . "\n";
// Resultado: $2y$07$BCryptRequires22Chrcte/VlQH0piJtjXl.0t1XkA8pw9dMXTpOq
* O salt é a adição de caracteres, palavras, termos ou mesmo números que dão uma certa aleatoriedade aos algoritmos de senha e ajudam a torná-los indecifráveis.
Verificando a senha digitada:
// Valor salvo no banco de dados
$hash = '$2y$07$BCryptRequires22Chrcte/VlQH0piJtjXl.0t1XkA8pw9dMXTpOq';
// Senha digitada pelo usuário
$senha = 'rasmuslerdorf';
if (password_verify($senha, $hash)) {
echo 'Senha correta';
} else {
echo 'Senha incorreta';
}