sql >> Base de Datos >  >> RDS >> Mysql

php password_verify no funciona con la base de datos

Encontré el problema. cuando hice esto:

echo strlen($hash)

imprimió 90, lo cual es extraño porque definitivamente no había espacios al final cuando imprimí el mensaje de éxito/fracaso, y el campo tiene una longitud varchar de 255

Agregué esta línea:

$hash = substr( $hash, 0, 60 );

Y ahora funciona bien.

Es extraño que nadie más parece haberse encontrado con este problema. Hay publicaciones similares sobre contraseña_verificar, pero ninguna de ellas requirió este tipo de conversión, o ninguna conversión para el caso:

php password_verify no funciona

password_verify php no coincide

http://forums.phpfreaks.com/topic/ 283407-necesito-ayuda-con-contraseña-verificar/

Uso de la función password_hash y password_verify de PHP 5.5

Una cosa que me molesta es que esto evita que el código sea compatible con versiones posteriores. ¿Cómo sabré que el hash tiene 60 caracteres cuando cambie el valor predeterminado?