Como encriptar y desencriptar una clave en php

Imagen de flaqui

Forums: 

Hola como estan!!! necesito ayuda, tengo un formulario en php para cambiar una clave registrada en mi base de datos, al momento de guardar se almacena en la base de mysql la clave encriptada esto lo hago con la función md5(), el problema surge cuando el usuario no recuerda la clave debo sacar la clave de la base pero no ENCRIPTADA para enviarla por email, pero la función md5() no permite desencriptar, xfa si alguien puede ayudarme se lo agradesco de antemano.

BY BY!!!!

MD5 es un algoritmo de "una

Imagen de Manu

MD5 es un algoritmo de "una sola vía", o "One Way", es decir que no lo puedes desencriptar, una forma sería hacer un "brute force", pero te tomaría demasiado tiempo.

Revísate:

http://es.wikipedia.org/wiki/MD5

para que comprendas un poco más de este algoritmo.

La solución en estos casos suele ser "reestablecer" la contraseña, asignándole una nueva.

Otra solución es utilizar un algoritmo como RSA, pero te meterías en un plan engorroso, particularmente prefiero utilizar MD5 y si se olvidan la clave les doy otra.

No es posible

Imagen de leninweblb

Hola.. Lo que quieres hacer no hay como, ya que como dice Manu, el algoritmo MD5 es "One Way", con lo cual no podrías desencriptar el password, te lo explico de esta manera:

Nosotros tenemos 97 caracteres para componer nuestro password. Supongamos que nuestro password tiene una longitud de 12 caracteres y cumple con todas las normas de un password seguro.

Por lo tanto sería: 97 ^ 12

Combinaciones posibles: 97^12 = 693.842.360.995.438.000.295.041

John the Ripper es capaz de probar medio millón de passwords por segundo.

Por tanto 500.000 * 60 segundos * 60 minutos * 24 horas * 365 dias = 15.768.000.000.000 combinaciones por año

Con lo que tendríamos como conclusión que para poder desencriptarlo deberías ser inmortal.

Lo aconsejable en estos casos es que cuando un usuario no recuerda su password, lo que hace el sistema es generar un password aleatorio y reemplazar en la base de datos al password anterior, no sin antes haber encriptado la password aleatoria, luego este password será enviada al correo, o a donde sea que se le envie el nuevo password al usuario.

Saludos.

PD. Ecualug utiliza esta forma cuando un usuario no recuerda su clave.