PHP - Ayuda , PHP y funcion hash() y passwd_verify

 
Vista:
sin imagen de perfil

Ayuda , PHP y funcion hash() y passwd_verify

Publicado por jafet (2 intervenciones) el 07/09/2016 05:02:22
Hola, soy nuevo en PHP y he estado utilizando un equipo con sistema operativo xubuntu y Xampp, con PHP 7.0.8

Pero a la hora de comprobar la contraseña con passwd_verify, siempre va da un resultado falso.Nose si alguien me pudiera ayudarme.
Copio el codigo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?php
try{
 
$login=htmlentities(addslashes($_POST["login"]));
 
$password=htmlentities(addslashes($_POST['password']));
$contador=0;
 
 
$base=new PDO("mysql:host=localhost; dbname=pruebas" , "root", "");
 
$base->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 
 
$sql="SELECT * FROM USUARIOS_PASS WHERE USUARIO= :login";
 
$resultado=$base->prepare($sql);
 
$resultado->execute(array(':login'=>$login));
 
while($registro=$resultado->fetch(PDO::FETCH_ASSOC)){
 
//echo "Usuario: " . $registro['USUARIO'] . " Contraseña: " . $registro['PASSWORD'] . "<br>";
if(password_verify($password,$registro['PASSWORD'])){
 
$contador++;
}
 
}
 
if($contador>0){
echo "Usuario registrado";
 
}else{
echo "Usuario no registrado";
 
 
}
 
 
$resultado->closeCursor();
 
 
 
}catch(Exception $e){
 
die("Error: " . $e->getMessage());
 
 
 
}
 
 
 
 
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Ayuda , PHP y funcion hash() y passwd_verify

Publicado por DAVID (129 intervenciones) el 07/09/2016 10:44:35
Hola,
porque conviertes el usuario y la password a entidades html? has probado a quitar esa función y ver si te va??
Prueba esto:
1
2
3
$login=$_POST["login"];
 
$password=$_POST['password'];

Un saludo,
David
diseno web madrid
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 729
Bronce
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Ayuda , PHP y funcion hash() y passwd_verify

Publicado por gonzalo (615 intervenciones) el 07/09/2016 21:26:58
en donde esta la funcion hash?

en este caso no se como estas usando hash pero es relativamente facil, todo depende de como aplicaste hash cuando guardaste el password ya que debes usar el mismo metodo para comparar el password de la pagina contra el password de la base de datos.

si aplicas funciones diferentes no va a coincidir y logico lo va a rechazar.

la funcion como yo la uso es

$x=hash("md2",$password,false);

lo que yo haria es:

1 recuperar el password de la pagina
2 aplicarle el hash
3 compararlo contra el hash de la base de datos

si coincide regresas true y listo.

salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Ayuda , PHP y funcion hash() y passwd_verify

Publicado por jafet (2 intervenciones) el 08/09/2016 03:47:10
Gracias, en mi caso utilizo password_hash:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
 
$usuario= $_POST["usu"];
$contrasenia= $_POST["contra"];
$pass_cifrado=password_hash($contrasenia,PASSWORD_DEFAULT,array("cost"=>12));
 
try{
 
	$base=new PDO('mysql:host=localhost; dbname=pruebas', 'root', '');
 
	$base->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 
	$base->exec("SET CHARACTER SET utf8");
 
 
	$sql="INSERT INTO USUARIOS_PASS (USUARIO, PASSWORD) VALUES (:usu, :contra)";
 
	$resultado=$base->prepare($sql);
 
	$resultado->execute(array(":usu"=>$usuario, ":contra"=>$pass_cifrado));
 
	echo "Registro insertado";
 
	$resultado->closeCursor();
 
}catch(Exception $e){
 
	echo "Línea del error: " . $e->getLine();
 
}finally{
 
	$base=null;
 
}
 
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar