Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

php password_verify não está funcionando com banco de dados


Encontrou o problema. quando eu fiz isso:
echo strlen($hash)

imprimiu 90, o que é estranho porque definitivamente não havia espaços no final quando imprimi a mensagem de sucesso/falha, e o campo tem um comprimento varchar de 255

Eu adicionei esta linha:
$hash = substr( $hash, 0, 60 );

E agora funciona bem.

É estranho que ninguém mais parece ter se deparado com esse problema. Existem posts semelhantes sobre password_verify, mas nenhum deles exigiu esse tipo de conversão, ou qualquer conversão para esse assunto:

php password_verify não está funcionando

password_verify php não corresponde

http://forums.phpfreaks.com/topic/ 283407-precisa-de-ajuda-com-password-verify/

Usando a função password_hash e password_verify do PHP 5.5

Uma coisa que me incomoda é que isso impede que o código seja compatível com versões futuras. Como saberei que o hash tem 60 caracteres quando o padrão for alterado?