| |||
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. |
| ||||
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. |
| ||||
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. |
| |||
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. |