Como Utilizar a API de Passwords do PHP 5.5+

Henrique Dias August 20, 2014
Source
Como muitas das novidades introduzidas na versão 5.5 do PHP, a API de passwords não passou despercebida aos desenvolvedores. Hoje vamos falar da criação de hash de passwords utilizando esta API. Antes de começarmos a analisar como se criam as passwords, vamos ver que novas funções trouxe esta API para o PHP: passwordgetinfo passwordhash passwordneedsrehash passwordverify Cada uma tem uma função diferente porém estão todas relacionadas. Assim, vamos falar de cada uma destas funções. Vamos começar! passwordhash Esta função pode ser considerada a principal do conjunto pois é com ela que criamos as hash e deve ser utilizada da seguinte forma: Por padrão, será criado um novo por cada nova hash criada porém pode ser definido. SALT => Por padrão, o valor 10 irá ser utilizado porém pode ser alterado à semelhança do anterior. / $options = array( 'cost' => 13, 'salt' => mcryptcreateiv(25, MCRYPTDEVURANDOM) ); passwordhash($password, PASSWORDBCRYPT, $options); Acrescento ainda que a função retornará passwordverify Depois de criarmos a hash vamos precisar de, evidentemente, confirmá-la. Para confirmar se uma password corresponde a uma hash basta utilizarmos esta função da seguinte forma: 13, 'salt' => mcryptcreateiv(25, MCRYPTDEVURANDOM) ); $hash = passwordhash('aminhapassword', PASSWORDBCRYPT, $options); / Utilizando a função passwordgetinfo, vamos obter as diversas opções enviadas quando criámos a hash. / $info = passwordgetinfo($hash); / Assim, vardump($info) irá retornar o seguinte: array(3) { ["algo"]=> int(1) ["algoName"]=> string(6) "bcrypt" ["options"]=> array(1) } / passwordneedsrehash Esta função permite-nos confirmar se uma hash já criada corresponde a uma array de opções e a um algoritmos. Podem observar mais no seguinte exemplo: 13, 'salt' => mcryptcreateiv(25, MCRYPTDEVURANDOM) ); $hash = passwordhash('aminhapassword', PASSWORDBCRYPT, $options); / A função seguinte irá retornar true porque todas as opções corresponde às que foram dadas anteriormente. / passwordneedsrehash($hash, 0, $options); Se tiver qualquer dúvida relacionada ao segundo parâmetro da função, sugiro-lhe a leitura desta página e também que verifique os valores obtidos com Espero que dê bom uso a esta função :)

Discussion in the ATmosphere

Loading comments...