Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/11/2015, 11:01
Avatar de kahlito
kahlito
Colaborador
 
Fecha de Ingreso: marzo-2003
Ubicación: En el Estrecho y el mar
Mensajes: 2.936
Antigüedad: 21 años, 1 mes
Puntos: 65
Error haciendo login con contraseña encriptada crypt

Hola.

Estoy haciendo un sistema de usuarios que al registrarlo le hago la encriptación a la contraseña de esta forma:

Código PHP:
Ver original
  1. <?php
  2. if(isset($_POST["registrar"])){
  3.     $usuario = $_POST["usuario"];
  4.     $usuario = mysqli_real_escape_string($conexion, $usuario);
  5.  
  6.     $contrasena = $_POST["contrasena"];
  7.     $contrasena = mysqli_real_escape_string($conexion, $contrasena);
  8.     $hashFormat = "$2y$10$";
  9.     $salt = "iusesomecrazystrings22";
  10.     $hashF_and_salt = $hashFormat . $salt;
  11.     $encript_password = crypt($contrasena, $hashF_and_salt);
  12.     $contrasena = crypt($contrasena, $hashF_and_salt);
  13.  
  14.     //Lo envío como $contrasena a la base de datos.
  15. }
  16. ?>

Y luego al hacer el login entrada pues siempre me da error y no logro que coincidan las contraseñas.

Código PHP:
Ver original
  1. <?php
  2. if(isset($_POST["login"])){
  3.     $usuario = $_POST["usuario"];
  4.     $usuario = mysqli_real_escape_string($conexion, $usuario);
  5.  
  6.     $contrasena = $_POST["contrasena"];    
  7.  
  8.     $query_password_e = "SELECT contrasena from usuarios ";
  9.     $query_password_e .= " WHERE usuario = '{$usuario}'";
  10.     $buscar_contrasena_e = mysqli_query($conexion, $query_password_e);
  11.     if($fila = mysqli_fetch_array($buscar_contrasena_e))
  12.     {
  13.         $db_contrasena = $fila['contrasena'];
  14.        
  15.         $input_password = crypt($contrasena, $db_contrasena);
  16.         if($input_password == $db_contrasena){
  17.             echo $input_password."<br>";
  18.             echo $db_contrasena."<br>";
  19.             echo "Coinciden<br>";
  20.         }
  21.         else{
  22.             echo $input_password."<br>";
  23.             echo $db_contrasena."<br>";
  24.             echo "No coinciden<br>";
  25.         }
  26.     }  
  27. }
  28. ?>

Siempre me da que no coindicen, incluso he probado de otras maneras pero nada.

¿Cómo podría solucionarlo? Saludos.