Saltar al contenido

php password_hash y password_verify problemas no coinciden

Solución:

El problema con su código es que está usando las comillas dobles " en lugar de las comillas simples ' cuando se trata de tu hachís.

Al asignar:

$hash = "$2y$10$fXJEsC0zWAR2tDrmlJgSaecbKyiEOK9GDCRKDReYM8gH2bG2mbO4e";

Está haciendo que php piense que tienes una variable llamada $2y y otro llamado $10 y finalmente un tercero llamado $fXJEsC0zWAR2tDrmlJgSaecbKyiEOK9GDCRKDReYM8gH2bG2mbO4e. Que obviamente no es el caso.

Noté al encender el informe de errores que el error:

Aviso: Variable no definida: fXJEsC0zWAR2tDrmlJgSaecbKyiEOK9GDCRKDReYM8gH2bG2mbO4e

Estaba siendo lanzado por PHP.

Reemplace todas sus comillas dobles con comillas simples para corregir.

P.ej

$hash="$2y$10$fXJEsC0zWAR2tDrmlJgSaecbKyiEOK9GDCRKDReYM8gH2bG2mbO4e";

Trata todo el hash como una cadena literal en lugar de una cadena con variables incrustadas.

Tuve un problema similar con password_verify().

El error en mi caso, fue que he declarado mi campo de contraseña en la base de datos como varchar(30), pero el hash es igual o superior a 60 caracteres ..

Funciona bien para mi.

<?php

$hash=password_hash("rasmuslerdorf", PASSWORD_DEFAULT);
if (password_verify('rasmuslerdorf', $hash)) {
    echo 'Password is valid!';
} else {
    echo 'Invalid password.';
}
?>

PRODUCCIÓN:

¡La contraseña es válida!

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *