Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Desencriptar una contraseña en PHP

Estas en el tema de Desencriptar una contraseña en PHP en el foro de PHP en Foros del Web. Hola, tengo una duda: Estoy haciendo una página para ingresar los datos de un usuario con contraseña, y utilizo sha1 para poder encriptar el password ...
  #1 (permalink)  
Antiguo 05/03/2014, 12:48
Avatar de Landa11  
Fecha de Ingreso: febrero-2014
Ubicación: En algún lugar de mi oficina
Mensajes: 148
Antigüedad: 10 años, 10 meses
Puntos: 1
Pregunta Desencriptar una contraseña en PHP

Hola, tengo una duda:

Estoy haciendo una página para ingresar los datos de un usuario con contraseña, y utilizo sha1 para poder encriptar el password y lo hace correctamente y lo ingresa en una base de datos.

Este es mi código para insertar los datos a la DB:

Código PHP:
Ver original
  1. <?php
  2. require_once('funciones.php');
  3. conectar('localhost', 'root', '', 'almacenaje');
  4.  
  5. $user = strip_tags($_POST['user']);
  6. $pass = strip_tags(sha1($_POST['pass']));
  7. $mail = strip_tags($_POST['mail']);
  8. $ip = $_SERVER['REMOTE_ADDR'];
  9.  
  10. $query = @mysql_query('SELECT * FROM datos WHERE user="'.mysql_real_escape_string($user).'"');
  11. if($existe = @mysql_fetch_object($query))
  12. {
  13.     echo 'El usuario '.$user.' ya existe.';
  14. }
  15. else
  16. {
  17.     $meter = @mysql_query('INSERT INTO datos (user, pass, mail, ip) values ("'.mysql_real_escape_string($user).'", "'.mysql_real_escape_string($pass).'", "'.mysql_real_escape_string($mail).'", "'.$ip.'")');
  18.     if($meter)
  19.     {
  20.         echo 'Usuario registrado con exito';
  21.     }
  22.     else
  23.     {
  24.         echo 'Hubo un error en el registro';
  25.     }  
  26. }
  27. ?>





Y este es mi código para poder mostrar los datos y poder modificar y/o eliminar:

Código PHP:
Ver original
  1. <?php
  2. /*$con = mysql_connect("localhost", "root", "");
  3. if (! $con){die ("ERROR EN LA CONEXION CON MYSQL: ".mysql_error());}*/
  4.  
  5. $base = mysql_select_db ("u702856234_login",$con);
  6. if(! $base){die ("ERROR AL CONECTAR CON LA BASE DE DATOS: ".mysql_error());}
  7.  
  8. /*$base = mysql_select_db ("almacenaje", $con);
  9. if(! $base){die ("ERROR AL CONECTAR CON LA BASE DE DATOS: ".mysql_error());}*/
  10.  
  11. /********************************************/
  12. /* Luego vamos a obtener todos los datos que esten contenidos
  13. en la tabla con una consulta */
  14. $sql = "SELECT * FROM datos";
  15.  
  16. $resultado = mysql_query($sql);
  17. /*ahora creamos la tabla en html para mostrar los resultados
  18. agregandole un par de botones de radio */
  19. echo "<html>
  20.         <h1>MODIFICAR Y/O ELIMINAR</h1>
  21.         <body>
  22.         <form name='ejecuta' method='post' action='ejecuta.php'>
  23.             <table>
  24.                 <tr><td>Id</td><td>Nombre</td><td>Password</td><td>Correo Electronico</td><td>Modificar</td><td>Eliminar</td></tr>";
  25. $i = 0 ; //iniciamos nuestro cont en cero
  26. /*el siguiente bucle nos permite obtener la informacion obtenida
  27. de la ejecución de la sentencia de sql */
  28. while ($row = mysql_fetch_row($resultado)){
  29.             echo "<tr><td><input type='hidden' name='iduser[$i]' value='".$row[0]."' />".$row[0]."</td>
  30.                       <td><input type='text' name='user[$i]' value='".$row[1]."' /></td>
  31.                       <td><input type='text' name='pass[$i]' value='".$row[2]."'/></td>
  32.                       <td><input type='mail' name='mail[$i]' value='".$row[3]."'/></td>
  33.                       <td><input type='radio' name='seleccion[$i]' value='modifica".$row[0]."'></td><!-- Esta línea es para saber si se modifica -->
  34.                       <td><input type='radio' name='seleccion[$i]' value='elimina".$row[0]."'></td><!-- Esta línea es para saber si se elimina -->
  35.                       </tr>";$i++;
  36. }
  37. echo "</table><input type='submit' value='Enviar'></form></body></html>";
  38. ?>


Mi duda es que si hay algún método para poder llamar al sha1 ('pass') y poder ingresarlo en un campo de texto pero con la contraseña desencriptada para poder cambiarla o mostrarla.
Espero me puedan ayudar en esta consulta y les agradezco de antemano.

Última edición por Landa11; 05/03/2014 a las 12:55
  #2 (permalink)  
Antiguo 05/03/2014, 13:07
Avatar de paxarin  
Fecha de Ingreso: enero-2010
Ubicación: Santander
Mensajes: 413
Antigüedad: 14 años, 10 meses
Puntos: 6
Respuesta: Desencriptar una contraseña en PHP

Desde mi ignoracia te comento una cosa.
Ya que tienes el pass encriptado, si quieres modificarlo no seria más facil en lugar de tener que desencriptarlo ( que considero no sea muy facil) y pasarlo a texto plano. Hacer directamente un UPDATE y cambiarlo?
El funcionamiento basico seria como el tipico link para recuperar el password perdido.
__________________
http://www.paxarindesign.es
  #3 (permalink)  
Antiguo 05/03/2014, 13:10
Avatar de Landa11  
Fecha de Ingreso: febrero-2014
Ubicación: En algún lugar de mi oficina
Mensajes: 148
Antigüedad: 10 años, 10 meses
Puntos: 1
De acuerdo Respuesta: Desencriptar una contraseña en PHP

Cita:
Iniciado por paxarin Ver Mensaje
Desde mi ignoracia te comento una cosa.
Ya que tienes el pass encriptado, si quieres modificarlo no seria más facil en lugar de tener que desencriptarlo ( que considero no sea muy facil) y pasarlo a texto plano. Hacer directamente un UPDATE y cambiarlo?
El funcionamiento basico seria como el tipico link para recuperar el password perdido.
De hecho, el código que empleo es para que modifiques o elimines directamente los datos del usuario que eliges, pero busco una forma para poder desencriptarlo. Sólo quiero una opción más y ver si se puede realizar.

Gracias por tu respuesta y la tomaré en cuenta
  #4 (permalink)  
Antiguo 05/03/2014, 13:10
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 7 meses
Puntos: 528
Respuesta: Desencriptar una contraseña en PHP

Creo que confundes encriptación con hash, la encriptación es reversible mientras el hash como son md5, sha1 no son reversibles, es decir una vez obtenido el hash de una cadena, no podrás saber el contenido de la cadena, por lo que en estos casos no se le puede decir al usuario su contraseña y se le debe dar una nueva.
  #5 (permalink)  
Antiguo 05/03/2014, 13:52
Avatar de Landa11  
Fecha de Ingreso: febrero-2014
Ubicación: En algún lugar de mi oficina
Mensajes: 148
Antigüedad: 10 años, 10 meses
Puntos: 1
De acuerdo Respuesta: Desencriptar una contraseña en PHP

Cita:
Iniciado por ocp001a Ver Mensaje
Creo que confundes encriptación con hash, la encriptación es reversible mientras el hash como son md5, sha1 no son reversibles, es decir una vez obtenido el hash de una cadena, no podrás saber el contenido de la cadena, por lo que en estos casos no se le puede decir al usuario su contraseña y se le debe dar una nueva.
Era lo que temía, y con md5 si se puede realizar el reversible? O hay algun método de encriptación donde pueda tener esos datos?

Gracias por tu comentario.
__________________
Ayudando a la gente con nuestros códigos para poder tener el conocimiento adecuado y ser libres!
  #6 (permalink)  
Antiguo 05/03/2014, 13:59
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 7 meses
Puntos: 528
Respuesta: Desencriptar una contraseña en PHP

No, md5 es igual hash.

Para desencriptar necesitas primero encriptar, para lo cual hay varios métodos, aunque por compatibilidad yo suelo usar rijndael 26, con la función mcrypt_encrypt() aunque realmente para contraseñas de usuario definitivamente no es recomendable, por lo que te mencionaba de que los sitios web normalmente te dan una nueva contraseña, ya que es más seguro.

Etiquetas: dreamweavercs6, html5, mysql+db, php+base+de+datos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:04.