Ver Mensaje Individual
  #4 (permalink)  
Antiguo 30/01/2016, 08:16
mrmoon
 
Fecha de Ingreso: enero-2016
Mensajes: 15
Antigüedad: 8 años, 10 meses
Puntos: 0
Respuesta: Comparar contraseña encriptadas login

Hola.
He observado, que creando el mismo usuario varias veces, con los mismos datos y el mismo password, crea un password encriptadp distinto.
En la pagina https://www.dailycred.com/article/bcrypt-calculator
Uso el mismo pasword y me da distintos resultado también.
El método de encriptacion es
Código PHP:
encoders:
        
inventariouserBundleEntityUser:
            
algorithmbcrypt
            cost
12 
¿Por que?
[URL="https://en.wikipedia.org/wiki/Bcrypt"]https://en.wikipedia.org/wiki/Bcrypt[/URL]
Pensaba que el chorizo era la clave y el "sal" era algo interno de la entidad User.
Mi idea era coger el password guardado en el registro y generar uno igual y comparar
Código PHP:
$encoder $this->container->get('security.password_encoder');
$encoded $encoder->encodePassword($user$password);
$user=$this->getDoctrine()->getRepository('userBundle:User')->findOneBy(array("username"=>$username,"password"=>$encoded)); 
Esto no iba a ningún lado, cada vez que se encripta se crea un "chorizo nuevo", por lo que siempre son distintos.

No era tan complicado.
Con esta función se solucionaba:
Código PHP:
if (password_verify($password$user->getPassword())) 
Se le pasa el password del formulario, sin codificar y el password que tenemos en la BBDD(este esta codificado). El solo saca el "sal" del guardado, hace la codificación con el password del login y compara los resultados.
Saludos Luis