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:
Guardo la contraseña en la base de datos. 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');
Ahora como comparo esa clave guardada con la que coloca el usuario para loguearse luego.
En el logueo el codigo es asi:
Código:
Algo estoy haciendo mal? Desde ya gracias. Y la clave se guarda en la base de datos encriptada o eso parece. $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"; }