elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Problemas con Password_Verify
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problemas con Password_Verify  (Leído 555 veces)
lauro

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Problemas con Password_Verify
« en: 7 Mayo 2021, 18:11 pm »

Hola buenas !! tengo problemas con password_verify no encuentro cula es el problema
si alguen me puede ayudar. Gracias

no Compara bien el password que viene de la base de datos con la variable que viene del $_POST['password'].

En la base de datos ya puse varchar 255 caracteres

salta el Buble if pass_verify y dice que las contrseña no coincide

Código
  1. <?php
  2. // Inicializando la Session
  3. if(isset($_SESSION['usuarios']) && $_SESSION['usuarios'] === true)
  4. {
  5.    header("location: Roles.php");
  6.    exit;
  7. }
  8. include "conexion.php";
  9.  
  10. $usuario = $password = "";
  11. $usuario_err = $password_err = "";
  12.  
  13. if($_SERVER["REQUEST_METHOD"] === "POST")
  14. {
  15.    if(empty(trim($_POST['usuario'])))
  16.    {
  17.        $usuario_err = "Ingrese un Usuario";
  18.    }else
  19.        {
  20.            $usuario = trim($_POST['usuario']);
  21.        }
  22.  
  23.    if(empty(trim($_POST['password'])))
  24.    {
  25.        $password_err = "Ingrese un password";
  26.    }else
  27.        {
  28.            $password = trim($_POST['password']);
  29.        }
  30.  
  31.  
  32.    // Validar credenciales
  33.  
  34.    if(empty($usuario_err) && empty($password_err))
  35.    {
  36.        $sql = "SELECT login_id, login_usuario, login_password FROM login WHERE login_usuario = ?";
  37.  
  38.        if($stmt = mysqli_prepare($con, $sql))
  39.        {
  40.            mysqli_stmt_bind_param($stmt, "s", $param_usuario);
  41.  
  42.                $param_usuario = $usuario ;
  43.  
  44.                if(mysqli_stmt_execute($stmt))
  45.                {
  46.                    mysqli_stmt_store_result($stmt);
  47.  
  48.                    if(mysqli_stmt_num_rows($stmt) == 1)
  49.                    {
  50.                        mysqli_stmt_bind_result($stmt, $id, $usuario, $password1);
  51.  
  52.                        if(mysqli_stmt_fetch($stmt))
  53.                        {
  54.                            $pass_verify = password_verify($password, $password1);
  55.                                echo "pass es: ".$password;
  56.  
  57.                                echo "<br>";
  58.  
  59.                                echo "pass_hashed es: ".$password1;
  60.                            if($pass_verify === true)
  61.                            {
  62.                                session_start();
  63.  
  64.                                //variables de session
  65.  
  66.                                $_SESSION['usuarios'] = true;
  67.                                $_SESSION['id'] = $id;
  68.                                $_SESSION['usuario'] = $usuario;
  69.  
  70.                               header('location: Roles/usuario_nuevo.php');
  71.  
  72.                            }else
  73.                                {
  74.                                   $password_err = "La Contraseña es Incorrecta";
  75.                                }
  76.                        }
  77.                    }else
  78.                        {
  79.                            $usuario_err = "Nombre de Usuario no Registrado";
  80.                        }
  81.  
  82.                }
  83.  
  84.  
  85.        }
  86.    }
  87.  
  88. }

esta el la otra parte del codifo donde cifra la contrseña y la la guarda en la base de datos



 
Código
  1. if(empty($usuario_err) && empty($correo_err) && empty($password) && empty($password2))
  2.    {
  3.         $password1 = password_hash ($password, PASSWORD_DEFAULT);
  4.  
  5.        $sql = "INSERT INTO login (login_usuario, login_correo, login_password) VALUES ('$usuario', '$correo', '$password1')";
  6.  
  7.        $ejec = mysqli_query($con,$sql);
  8.  
  9.            if($ejec)
  10.            {
  11.               header('Location: Inicio Sesion.php');
  12.            }
  13.  
  14.    }
  15.  
  16. }


« Última modificación: 7 Mayo 2021, 19:02 pm por MinusFour » En línea

mchojrin

Desconectado Desconectado

Mensajes: 35



Ver Perfil WWW
Re: Problemas con Password_Verify
« Respuesta #1 en: 18 Mayo 2021, 15:52 pm »

¿Qué resultado te da este código?


Código:
$pass_verify = password_verify($password, $password1);
echo "pass es: ".$password;

echo "<br>";

echo "pass_hashed es: ".$password1;


En línea

Ayudo a desarrolladores PHP a acceder a puestos mejor remunerados
lauro

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Problemas con Password_Verify
« Respuesta #2 en: 26 Mayo 2021, 00:05 am »

Muestran esto en pantalla:

pass es: 1234
pass_hashed es: $2y$10$YNMHUhlZgbSk5OTr6ZAbE.k.CjlFKrXmPMIm5Khtzi2I4hIBMerzq

el primero es el password que tipeo para incresar
y el segundo es el cifrado que viene de la base de datos
En línea

MinusFour
Moderador Global
***
Conectado Conectado

Mensajes: 5.169


I'm fourth.


Ver Perfil WWW
Re: Problemas con Password_Verify
« Respuesta #3 en: 26 Mayo 2021, 00:58 am »

Muestran esto en pantalla:

pass es: 1234
pass_hashed es: $2y$10$YNMHUhlZgbSk5OTr6ZAbE.k.CjlFKrXmPMIm5Khtzi2I4hIBMerzq

el primero es el password que tipeo para incresar
y el segundo es el cifrado que viene de la base de datos

Ese hash pertenece al string vacio:

Citar
php > var_dump(password_verify('', '$2y$10$YNMHUhlZgbSk5OTr6ZAbE.k.CjlFKrXmPMIm5Khtzi2I4hIBMerzq'));
bool(true)

De hecho, tu esperas que la variable este vacia:

Código
  1. if(... && empty($password) && ...)

Cuando haces esto:

Código
  1. $password1 = password_hash ($password, PASSWORD_DEFAULT);

Así que es de esperarse que $password es un string vacio.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines