Instalação
Artigos
Cursos
Loja
INSTALAÇÃO
ARTIGOS
CURSOS
EBOOKS
DOWNLOADS
LOJA
ARTIGOS
Verificação de senhas com password_hash
Uma forma mais segura de verificar senhas
Uma maneria simples e segura de criar hash para senhas é a função `password_hash`, ela está disponível de forma nativa desde a versão 5.5 do PHP e pode ser usada em versões anteriores com uma [extensão própria](https://github.com/ircmaxell/password_compat). A função `password_hash` como outras funções que geram esse tipo de saída é de mão única, ou seja, não permite que o resultado seja convertido para o seu valor original. Um grande diferencia que torna a função `password_hash` mais segura que outras funções é que ela gera diferentes saídas hash para uma mesma entrada. Isso acontece pois internamente ela gera um sal aleatório, tornando o hash muito mais seguro. Veja alguns exemplos comparando as funções `password_hash`, `md5` e `sha1`:
```php
## Tipos de algoritmos A função password_hash aceita três tipos de algoritmo para gerar o hash, são eles: |Algoritmo| Descrição | |--|--| | PASSWORD_DEFAULT | Usa o algoritmo bcrypt. | | PASSWORD_BCRYPT | Usa o algoritmo `CRYPT_BLOWFISH` para criar o hash. | | PASSWORD_ARGON2I | Usa o algoritmo Argon2 para criar o hash. | ## Como validar o hash gerado Normalmente depois de um usuário escolher uma senha na aplicação, não é ela que é salva no banco de dados. Para aumentar a segurança dos sistemas ao invés de salvar a senha escolhida pelos usuários, os desenvolvedores criam hash para eles e os salvam. Como vimos nesse artigo, uma boa maneira de gerar o hash é com a função `password_hash`, assim como ela existe outra função nativa no PHP que valida uma senha digitada pelo usuário. O funcionamento dela é bastante simples, só é necessário o hash armazenado e a senha digitada. Veja o exemplo a seguir: ```php
COMENTE SOBRE