Buenas, quería ver si alguien podría darme una mano.
Lo que estoy haciendo es un sistema de registro y logueo de usuario, el tema es la encriptacion de la clave.
En el Registro utilice este codigo para encriptar la clave:
Código:
function encriptar($contrasena, $numero = 7){
$salt = '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz./';
$saltc = sprintf('$2y$%02d$', $numero);
for($i = 0; $i < 22; $i++)
$saltc .= $salt[ rand(0, strlen($salt)-1) ];
return crypt($contrasena, $saltc);
}
$contrasena = encriptar('$contrasena');
Guardo la contraseña en la base de datos.
Ahora como comparo esa clave guardada con la que coloca el usuario para loguearse luego.
En el logueo el codigo es asi:
Código:
$usuario=$_POST['usuario'];
$contrasena=$_POST['contrasena'];
$sql="SELECT * FROM tabla WHERE usuario='$usuario'";
$resultado=mysqli_query($conexion, $sql) or die (mysqli_error());
if(mysqli_num_rows($resultado)>0){
$registro=mysqli_fetch_assoc($resultado);
$contrasenaencriptada=$registro['contrasena'];
if(crypt($contrasena, $contrasenaencriptada) == $contrasenaencriptada){
echo "Conexion Exitosa";
$_SESSION['usuario']=$usuario;
$_SESSION['login_ok']=1;
}
else{
echo "ERROR";
}
}else{
echo "Error de Conexion, compruebe su usuario y contraseña";
}
Algo estoy haciendo mal? Desde ya gracias. Y la clave se guarda en la base de datos encriptada o eso parece.