A API de senhas do PHP já não é novidade pra ninguém, no entato poucas são as pessoas
que hoje usam este recurso nos seus scripts. Então hoje vou falar de duas das funções mais importantes da API de senhas do PHP, que são elas o password_hash() e password_verify().
Notem que criei uma classe Password para encapsular o uso desses métodos e garantir a responsabilidade única (Single Responsibility Principe).
No método estático Password::create() usamos o método password_hash que é responsável por receber uma senha e nos dar como resposta um hash. Podemos também passar para esta função o tipo de criptografia que ela deve retornar. Os tipos são PASSWORD_DEFAULT, PASSWORD_BCRYPT e PASSWORD_ARGON2I.
Vejam também que é possivel passar um valor de custo para a geração dos hashs. Esse custo diz respeito a complexidade para gerar hash quanto maior o custo mais difícil de gerar pelo seu hardware e portanto mais segura a criptografia. O valor padrão de custo é 10;
No método estático Password::verify() verificamos se a senha passada no primeiro parâmetro é igual ao hash que foi passado no segundo parâmetro. Esse método é útil para verificarmos a autenticidade das senhas que são passadas pelos usuários no momento de login por exemplo.
Com apenas esses dois métodos disponível desde o PHP 5.5 podemos gerar e autenticar nossas senhas com segurança em nossos sistemas.
Além dessas duas funções a API de senhas do PHP também dispõe de outras funções como:
– password_get_info: Retorna as informações sobre o hash fornecido.
– password_needs_rehash: Verifica se o hash fornecido implementa o algoritmo e as opções indicadas. Se não, ela assume que o hash precisa ser regenerado.
Referências
http://php.net/manual/pt_BR/book.password.php
http://blog.thiagobelem.net/php-5-5-api-de-senhas