Foros del Web » Programando para Internet » PHP »

Como desencriptar claves?

Estas en el tema de Como desencriptar claves? en el foro de PHP en Foros del Web. He logrado encriptar password de usuarios mediante el método md5, pero no se como desencriptarlas y mostrar la clave verdadera al usuario ¿cómo lo hago?...
  #1 (permalink)  
Antiguo 15/05/2003, 10:40
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 15 años
Puntos: 1
Como desencriptar claves?

He logrado encriptar password de usuarios mediante el método md5, pero no se como desencriptarlas y mostrar la clave verdadera al usuario ¿cómo lo hago?
__________________
Ing. Reynier Pérez Mira
  #2 (permalink)  
Antiguo 15/05/2003, 11:00
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
No se puede desencriptar el algoritmo ("hash") MD5() ... Si quierees implementar un sistema de "recordad contraseña" a tus usuarios deberas de generarle un password temporal --> mostrarselo al usuario (o enviarselo por e-mail que es lo típico) y al entrar tu usuario a tu sistema por priméra vez con esa contraseña provisional .. invitarle a que la cambien por la que le parezca ..

Así es como se trabaja con contraseñas en MD5() ... Si no quieres hacer todo esto .. no uses ninguna función ("hash") de encriptación irreversible como el MD5() y alguno mas .. usa las librerias mcryp() que es encriptación/desencriptación (esto requiere de que tengas esa extensión instalada en tu servidor ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 15/05/2003, 11:02
Avatar de ferny
Il capo della mafia
 
Fecha de Ingreso: febrero-2002
Ubicación: Al final del cable
Mensajes: 10.080
Antigüedad: 15 años, 9 meses
Puntos: 54
Hace poco se ha hablado de esto mismo en este foro. NO se puede desencriptar una cadena encriptada por md5, lo que se traduce en que NO se puede recuperar la contraseña. Lo único que puedes hacer es comparar cadenas, o sea tomar la contraseña que el usuario da por teclado, pasarla por md5 y compararla con el valor de la base de datos; si coinciden es la misma contraseña (puede que dos cadenas distintas den el mismo código encriptado, pero es muy muy difícil)

En la práctica, lo que se hace es generar una nueva contraseña, enviársela al usuario y encriptarla y meterla en la base de datos, y luego el usuario la cambia por una nueva.

Saludos

<editado>¡Vaya, Cluster se me adelantó!</editado>
__________________
www.mundodivx.com || www.mundodivx.org

Pon tu mano en un horno caliente durante un minuto y te parecerá una hora.
Siéntate junto a una chica preciosa durante una hora y te parecerá un minuto.
Eso es la relatividad.
  #4 (permalink)  
Antiguo 15/05/2003, 11:04
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 15 años
Puntos: 1
Y como hago esto?

Y como puedo hacer esto? Es que recíen estoy comenzando con esto de PHP
__________________
Ing. Reynier Pérez Mira
  #5 (permalink)  
Antiguo 15/05/2003, 11:11
Avatar de ferny
Il capo della mafia
 
Fecha de Ingreso: febrero-2002
Ubicación: Al final del cable
Mensajes: 10.080
Antigüedad: 15 años, 9 meses
Puntos: 54
El algoritmo más sencillo sería pedir el email con que el usuario se registró (o el nick o mejor todavía el nick+email para que sea más seguro), luego buscas que exista eso en la base de datos. Si es así, generas una nueva contraseña de la forma que quieras (números, letras, etc.), envias un email al usuario con los nuevos datos y actualizas tu tabla en la database con esa contraseña encriptada por md5, cuando el usuario entre a la página lo hará con su nueva contraseña.

Luego hay formas más complicadas, como enviar un email al usuario pidiendo confirmación y si éste confirma enviar un segundo email con los datos (esto es pq un usuario A podría joder a otro B cambiandole la contraseña de acceso, y con la confirmación entonces no lo hace a menos que el usuario B diga que sí)

Ahora el código es cosa tuya...
__________________
www.mundodivx.com || www.mundodivx.org

Pon tu mano en un horno caliente durante un minuto y te parecerá una hora.
Siéntate junto a una chica preciosa durante una hora y te parecerá un minuto.
Eso es la relatividad.
  #6 (permalink)  
Antiguo 15/05/2003, 11:15
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues tienes en PHP funciones tipo rand() para elegir aleatoriamente un numero ( que a su vez lo podrías usar como indice de algun array que contenga letras ...)

Con eso generarías tu contraseña provisional ... Ese password se lo muestras al usuario o se lo envias por e-mail y .. esa misma variable (password) que has generado te lo guardas en tu BD o donde guardes ese dato de ese usuario que solicita el "recordar" contraseña en su campo "contraseña" previo "encriptado" usando md5() .. para que cuando vuelva a "longearse" (identificarse) en tu sistema con la contraseña que has creado y le has mostrado o enviado por e-mail siga la validación actual que ya haces con tus contraseñas ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 06:28.