API de senhas

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';
}