SoloCodigo

Programación Web y Scripting => PHP => Mensaje iniciado por: Alchiment en Viernes 22 de Febrero de 2013, 18:38

Título: Sistema de login encriptado.
Publicado por: Alchiment en Viernes 22 de Febrero de 2013, 18:38
Saludos.  :smartass:

Soy nuevo en este foro y también en la programación php, estoy intentando realizar un sistema de login encriptado con php y mysql y utilizo el aes_encrypt por ejemplo:

      INSERT INTO principal (codigo, nombre, contrasena)
         values (03, 'Carlos', aes_encrypt('Carlos2', 'password'));

Esto se encripta en la base de datos, pero mi pregunta es como hago que una persona pueda acceder con esa contraseña encriptada, pense en almacenar los campos en una variable php y asi realizar una comparación.

Estoy probando con un nuevo campo que tenga de nombre Richard y contraseña Richard2 pero no lo compara el nombre junto a la contraseña y no logro darle  :ayuda:
   pd: lo probé con solo el nombre y si lo da pero lo pruebo con la contrasea NO encriptada y no da.  :nosweat:


     if(isset($_POST['enviar'])){
           if($_POST['txtnombre'] == $Vnombre and $_POST['txtcontrasena'] == $Vcontrasena ){
             
                echo '<h1> es correcto </h1>el nombre: '.$_POST['txtnombre'];
            }else{
                echo '<h1>es incorrecto </h1>el nombre: '.$_POST['txtnombre'];
            }
        }

Gracias  :suerte:
Título: Re:Sistema de login encriptado.
Publicado por: RadicalEd en Sábado 23 de Febrero de 2013, 15:17
Usa el método de encriptación md5, es mucho mejor y solo debes comparar el hash encriptado de la DB con el texto encriptado que metas en el campo de texto:
Código: PHP
  1. $sql = "SELECT camposquequeras FROM tablausuarios WHERE campoclave='".md5($_POST['CAMPOCLAVE'])."'";
y lo ejecutas con el mysql_query y luego validas o miras si te devuelve más de uno o como quieras validar
Título: Re:Sistema de login encriptado.
Publicado por: Alchiment en Sábado 23 de Febrero de 2013, 23:45
Gracias por responder Edo y he utilizado el codigo como me dices pero el problema esta en la encriptacion,
cambie los campos por una contraseña que no esta encriptada y si la lee, pero al utilizas tu ejemplo de varias formas no los lee, ya busque como leer la contraseña md5 y todos aparecen igual pero no se porque no lo utilza :(

Asi los ingreso en el MySql:

Código: SQL
  1. INSERT INTO principal (codigo, nombre, contrasena)
  2. VALUES(05, 'David', md5('David2'));


y asi en el PHP
Código: PHP
  1. $sql = "SELECT nombre, contrasena
  2.                             FROM principal
  3.                             WHERE nombre = '".$_POST['txtnombre']."' and contrasena = '".md5($_POST['txtcontrasena'])."'";

Pda: El mysql tampoco lee el md5
Título: Re:Sistema de login encriptado.
Publicado por: Alchiment en Domingo 24 de Febrero de 2013, 03:19
Edo  Ya encontre el problema  :nosweat:, gracias por la atención, era que al crear el campo Password lo cree varchar(25) y no recordaba que eran 32 caracteres  :nosweat:
ahora si me cojio :D
Gracias  :suerte:
Título: Re:Sistema de login encriptado.
Publicado por: RadicalEd en Domingo 24 de Febrero de 2013, 17:42
Ajj que inutilidad la suya, no aprende nada de lo que se le enseña.
Mire a ver
Título: Re:Sistema de login encriptado.
Publicado por: Alchiment en Domingo 24 de Febrero de 2013, 19:43
jajaj Inutil? por todo lado esta utd no.
Antes estoy expandiendo mis conocimientos porque los métodos de encriptacion no los enseñan ja!
Título: Re:Sistema de login encriptado.
Publicado por: RadicalEd en Lunes 25 de Febrero de 2013, 18:13
Claro que sí se enseña pero todavía falta para esa clase