[Tutorial] Encriptar password y login básico [Xt3mP]

  • 0 Respuestas
  • 2270 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Xt3mP

  • *
  • Underc0der
  • Mensajes: 432
  • Actividad:
    0%
  • Reputación 0
  • Ellos me están buscando, pero yo los encontraré.
    • MSN Messenger - Xt3mP@h4x0rz.us
    • AOL Instant Messenger - Xt3mP@h4x0rz.us
    • Yahoo Instant Messenger - Xt3mP@h4x0rz.us
    • Ver Perfil
    • Xt3mP
#########################################################################

En este tutorial trataré de enseñarles como encriptar una clave con varios métodos lo cuál si logran desencriptar una parte quedará todavía demasiado por desencriptar así que pues prácticamente nuestro login sería totalmente (en su mayoría) seguro.

Consistirá en 5 páginas, dos HTML (Registro y Login), 3 PHP que una sería la que llevará acabo el registro, la otra sería la conexión a la base de datos y la última sería comprobar el login.

Comenzarémos con el archivo config.php:

Código: PHP
  1. <?php
  2. $dbhost="localhost"; //Host del db
  3. $dbuser="xt3mpme_user"; //Usuario del db
  4. $dbpass="xt3mpme_pass"; //Password del db
  5. $db="xt3mpme_users"; //db donde se creara la tabla users
  6. mysql_connect("$dbhost","$dbuser","$dbpass");
  7. //Ya explique para que sirve cada variable.
  8. ?>
  9.  

Una vez hecho esto comenzarémos con el formulario de registro que se llamará registrar.html el cuál será demasiado simple para que lo tomen simplemente como referencia:

Código: HTML5
  1. <form action="registrar.php" method="POST">
  2. Usuario:<br>
  3. <input type="text" name="user" id="user"><br>
  4. Password:<br>
  5. <input type="password" name="passwd" id="passwd"><br>
  6. Repetir Password:<br>
  7. <input type="password" name="passwd2" id="passwd2">
  8. <input type="submit" value="Registrar" id="submit">
  9.  

Una vez hecho esto, seguirémos finalmente con la encriptación la cuál en está si explicaré mas o menos lo que sería la encriptación, se llamará registrar.php:

Código: PHP
  1. <?php
  2. include('config.php');//Incluimos la conexion a la base de datos.
  3. if (($_POST['user']== '') or ($_POST['passwd']== '') or ($_POST['passwd2']== '')){
  4. echo "Te faltaron rellenar campos";
  5. }else{
  6. if($_POST['passwd'] != $_POST['passwd2']){
  7. echo "Las contrasenas no coinciden";
  8. }else{
  9. $user = stripslashes($_POST["user"]);
  10. $user = strip_tags($user);
  11. // Quitamos las etiquetas html y lo relacionado a el usuario.
  12. $pass = stripslashes($_POST["passwd"]);
  13. $pass = strip_tags($pass);
  14. // Quitamos las etiquetas html y lo relacionado a el password.
  15. /* _____________________________________ */
  16. // Comenzamos con la encriptacion a el estilo de Xt3mP.
  17. $pass_encriptada1 = md5 ($pass); //Encriptacion nivel 1
  18. $pass_encriptada2 = crc32($pass_encriptada1); //Encriptacion nivel 1
  19. $pass_encriptada3 = crypt($pass_encriptada2, "xtemp"); //Encriptacion nivel 2
  20. $pass_encriptada4 = sha1("xtemp".$pass_encriptada3); //Encriptacion nivel 3
  21. // Aqui será demasiado dificil poder llegar a la password verdadera ya que por ejemplo, podrian desencriptar el md5 pero aún faltaria demasiado.
  22. $usuarios = mysql_query("SELECT usuarios FROM cuentas WHERE usuarios='$user' ");
  23. // Seleccionamos el campo usuarios de la tabla cuentas en donde el usuario es el que escriben en el campo user
  24. if($usuarios2 = mysql_fetch_array($usuarios))
  25. {
  26. echo 'El usuario '.$user.' ya esta registrado';
  27. mysql_free_result($usuarios);
  28. // Liberamos la memoria
  29. }else{
  30. mysql_query("INSERT INTO cuentas (usuarios,pass) values ('$user','$pass')");
  31. //Insertamos los valores de el user y pass en los campos usuarios y pass de la tabla cuentas
  32. echo "El usuario '.$user.' ha sido registrado con éxito.';
  33. //Decimos que el usuario ha sido registrado, etc.
  34. }
  35. }
  36. }
  37. ?>
  38.  

Ahora procederémos a hacer el login.html:

Código: Text
  1. <form action="logear.php" method="POST">
  2. User:<br>
  3. <input type="text" name="user" id="pass"><br>
  4. Pass:<br>
  5. <input type="password" name="pass" id="pass"><br>
  6. <input type="submit" value="Logear" id="submit">
  7.  

Creo que ya le entienden, así que haremos el logear.php:

Código: PHP
  1. <?php
  2. include('config.php'); //Incluimos la conexion a la base de datos.
  3. if( ($_POST["user"] == '') or ($_POST["pass"] == '') )
  4. {
  5. echo "Necesitas introducir datos de logeo";
  6. }else{
  7. $user = $_POST['user'];
  8. $pass = $_POST['pass'];
  9. $pass_encriptada1 = md5 ($pass); //Encriptacion nivel 1
  10. $pass_encriptada2 = crc32($pass_encriptada1); //Encriptacion nivel 1
  11. $pass_encriptada3 = crypt($pass_encriptada2, "xtemp"); //Encriptacion nivel 2
  12. $pass_encriptada4 = sha1("xtemp".$pass_encriptada3); //Encriptacion nivel 3
  13. $usuarios = mysql_query("SELECT * FROM cuentas WHERE usuarios='$user' and pass='$pass_encriptada4'");
  14. //Comprobamos que si el usuario y la pass introducidas existan
  15. if($usuarios2 = mysql_fetch_array($usuarios))
  16. {
  17. //Si existen los datos introducidos registraremos dos sesiones
  18. session_register("login");
  19. $_SESSION['login'] = "SI";//Le damos el valor SI a la sesion login.
  20. $_SESSION['user'] = $usuarios2["usuarios"];//Le damos el valor del nombre de usuario a la sesion user.
  21. echo '<script language="JavaScript" type="text/javascript">
  22. alert("Bienvenido.");//Mostramos alerta de bienvenida
  23. </script>';
  24. echo "<meta http-equiv='Refresh' content='2;url=index.php'>";//Redirigimos a nuestro index
  25. }else{
  26. echo 'Username y Password incorrecto.';
  27. }
  28. }
  29. }
  30. ?>
  31.  

Ahora un PLUS, mostrar contenido si es que esta logeado:

Código: PHP
  1. <?php
  2. if ($_SESSION['login'] = "SI"){//Si la Sesion LOGIN es igual a SI (Se registro si nos logeamos bien)
  3. echo "Hola: ".$_SESSION['user'];
  4. }else{//Si la Sesion LOGIN no es si (Se registro si nos logeamos bien)
  5. echo "Esta seccion es prohibida";
  6. }
  7. ?>
  8.  

Y eso sería todo, no es fácil ni díficil, es intermedio, los resultados de la password si ponemos xt3mp sería:

Encriptación MD5: 0fcf520c7c5f6a56b69244eeb9bfb98d
Encriptación MD5/crc32: -521765068
Encriptación MD5/crc32/Semilla: xtOtXrnGfYSMM
Encriptación MD5/crc32/Semilla/sha1: fa097e6b9dd4149f78b3e8c9917ff9eb38995da8

La base de datos realmente no sería díficil, si necesitan el código de crear base de datos por phpMyADMIN me lo hacen saber.

Saludos.
« Última modificación: Marzo 27, 2014, 06:12:05 pm por Expermicid »
Cada vez que me das Karma me motivas

 

[Tutorial] Utilizando localhost para visualizar .php by Subzer [PHP]

Iniciado por Subzer

Respuestas: 2
Vistas: 2985
Último mensaje Noviembre 14, 2012, 09:57:49 pm
por Subzer
Tutorial PHP Arrays Basicos, Asociativos, Multidimensionales[Con Voz]

Iniciado por Matabarras

Respuestas: 1
Vistas: 1795
Último mensaje Noviembre 24, 2012, 12:40:58 pm
por ANTRAX
Tutorial: Publicar un post en twitter desde PHP

Iniciado por Stiuvert

Respuestas: 1
Vistas: 3453
Último mensaje Diciembre 26, 2015, 03:07:12 pm
por ANTRAX
Tutorial Formularios POST-GET con Arrays predifinidos.

Iniciado por Matabarras

Respuestas: 0
Vistas: 1920
Último mensaje Noviembre 24, 2012, 12:44:42 pm
por Matabarras
[Tutorial] PHP - Crear Script Para Capturar Ip

Iniciado por andy007

Respuestas: 5
Vistas: 5112
Último mensaje Julio 18, 2013, 07:44:35 am
por empardopo