{
"path": "/2014/08/20/como-utilizar-api-passwords-php-55/",
"site": "at://did:plc:xsx3bphrwkgeo3qnfjhzmdra/site.standard.publication/3me7k4wsueo2b",
"tags": [
"php",
"security",
"portugues"
],
"$type": "site.standard.document",
"title": "Como Utilizar a API de Passwords do PHP 5.5+",
"description": "A API de passwords introduzida na versão 5.5 do PHP é excelente. Trouxe quatro novas maravilhosas funções. Resumimos a forma como cada uma funciona.",
"publishedAt": "2014-08-20T22:16:15Z",
"textContent": "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 :)"
}