Código
pero según la documentación de PHP,
Código
tiene un mayor cifrado. Pues bien, en este caso, está contraindicado utilizar un $salt y de hecho en futuras versiones será eliminada la opción. Pues bien, mi problema: Cuando realizo el registro en la BD lo hago de la siguiente forma:
password_hash($string, PASSWORD_DEFAULT)
Código
//Página de registro include "bd.php" //recoger datos del formulario $user=$_POST['usuario']; $pass=$_POST['password']; //cifrar la contraseña para añadirla a la BD $cifrar=password_hash($pass, PASSWORD_DEFAULT); $sql="insert into $tabla1 (usuario, password, rank) values ('$user', '$cifrar', 1)"; $consulta = $mysqli->query ($sql) or die ("Problemas al insertar datos:<br>".mysqli_error($mysqli));
Y creeme que inserta los datos a la perfección. Ahora... cuando voy a acceder a esos datos, hago lo siguiente:
Código
//Página de registro include "bd.php" //recoger datos del formulario $user=$_POST['usuario']; $pass=$_POST['password']; //cifrar la contraseña para añadirla a la BD $cifrar=password_hash($pass, PASSWORD_DEFAULT); $sql="select * from $tabla1 where usuario='$user' LIMIT 1"; $reg = $consulta->fetch_array(); if (password_verify($cifrar, $reg['password'])) { echo "Las contraseñas coinciden"; } else { echo "Password enviado: ".$cifrar."<br>"; echo "Password almacenado: ". $reg['password']; }
Pero lo que hace es generar un nuevo hash en vez de generar el mismo. Probé escribiendo como contraseña 12345678 para descartar que fuera que escribía mal la contraseña pero nada. No funciona. Y sé que estoy haciendo algo mal porque si es una función recomendada, debe funcionar bien