Foros del Web » Programación para mayores de 30 ;) » Java »

Enviar nueva contraseña generada automaticamente.

Estas en el tema de Enviar nueva contraseña generada automaticamente. en el foro de Java en Foros del Web. Hola compañeros! Bueno aquí sigo con mi aplicación web basada en los frameworks Hibernate, Spring y Struts 2. La cuestión es que cuando doy de ...
  #1 (permalink)  
Antiguo 02/10/2011, 09:24
 
Fecha de Ingreso: diciembre-2010
Ubicación: Madrid
Mensajes: 42
Antigüedad: 13 años, 4 meses
Puntos: 1
Enviar nueva contraseña generada automaticamente.

Hola compañeros!

Bueno aquí sigo con mi aplicación web basada en los frameworks Hibernate, Spring y Struts 2.

La cuestión es que cuando doy de alta a un usuario, yo cifro su clave, la almaceno cifrada en la base de datos y todo funciona correctamente.

Mi pregunta ahora es... ¿que pasa si el usuario perdió la contraseña y quiere tener una nueva?

Se que el procedimiento sería algo como:
  • Mediante un mecanismo de autenticación (nombre de usuario y correo, por ejemplo) verificar que el usuario es el correcto.
  • Generar una clave aleatoria
  • Enviarsela al correo
  • Actualizar la base de datos con la clave aleatoria
  • Darle la posibilidad de modificar su clave por otra que prefiera.

Así que mi pregunta es... que debo de hacer para realizar estos pasos? Hay alguna herramienta que me lo simplifique? alguna ayuda o sugerencia?

Gracias de antemano!

Casty.
  #2 (permalink)  
Antiguo 02/10/2011, 09:27
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Enviar nueva contraseña generada automaticamente.

No se si haya alguna herramienta que lo simplifique y hay varias maneras de hacerla. Una forma sencilla es:
En la tabla de usuarios guardar un HASH de X longitud. Cuando el usuario pierda la contraseña y solicite una nueva creas el hash, lo insertas en la base de datos y envias un correo a la direccion con el ID del usuario y el HASH.
En la pagina que recibe el request es solo cosa de validar si el usuario tiene ese hash asignado y luego mostrarle un formulario para resetear su contraseña.
  #3 (permalink)  
Antiguo 02/10/2011, 10:02
 
Fecha de Ingreso: diciembre-2010
Ubicación: Madrid
Mensajes: 42
Antigüedad: 13 años, 4 meses
Puntos: 1
Respuesta: Enviar nueva contraseña generada automaticamente.

Cita:
Iniciado por Ronruby Ver Mensaje
No se si haya alguna herramienta que lo simplifique y hay varias maneras de hacerla. Una forma sencilla es:
En la tabla de usuarios guardar un HASH de X longitud. Cuando el usuario pierda la contraseña y solicite una nueva creas el hash, lo insertas en la base de datos y envias un correo a la direccion con el ID del usuario y el HASH.
En la pagina que recibe el request es solo cosa de validar si el usuario tiene ese hash asignado y luego mostrarle un formulario para resetear su contraseña.
Hola Ronruby,
Me lo podrías volver a repetir? La verdad que no me ha quedado claro de todo, lo siento! jejeje

Un saludo!
  #4 (permalink)  
Antiguo 02/10/2011, 17:19
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Enviar nueva contraseña generada automaticamente.

Cita:
Iniciado por CaSTy Ver Mensaje
Hola Ronruby,
Me lo podrías volver a repetir? La verdad que no me ha quedado claro de todo, lo siento! jejeje

Un saludo!
Ah, disculpame por eso.

Como te decía, una de las formas mas fáciles de hacerlo es la siguiente:

- El usuario pierde su contraseña por lo que llena un formulario con su Nombre de Usuario y su Correo con el que se registró.
- Al mandar ese formulario, tu script debe tomar el registro perteneciente a ese correo y ese nombre de usuario (en caso de que exista) y crear un hash, es decir, una cadena de caracteres alfanuméricos (de cualquier longitud).
Ese hash es guardado en la base de datos en un campo en especial para este motivo en la misma tabla del usuario.
- Ahora tu script envia al correo dado por el usuario un enlace que contenga el ID del usuario (o nombre de usuario) y el hash recién creado, algo como:
http://tusitio.com/recuperar-passwor...wfdegwafa54657
- Cuando el usuario va a su correo y hace clic al enlace le llevará a un script que comprueba si el registro para el usuario enviado tiene el hash asignado en la base de datos (el hash que se envio por URL).
- Si el hash concuerda, es decir que se comprobó vía email y podemos proceder a mostrar el formulario para el cambio de la contraseña. Al procesar ese formulario es solamente hacer el UPDATE en el registro correspondiente al usuario.

Puedes optar tambien por generar una contraseña generada aleatoriamente tambien luego de la confirmacion por correo. O hasta enviarle la que tenia, eso solo si la guardas como texto plano en tu BBDD (que es muy improbable por motivos de seguridad)

Espero ahora este mas claro. Cualquier duda me dejas saber.

Última edición por Ronruby; 02/10/2011 a las 17:25
  #5 (permalink)  
Antiguo 09/10/2011, 11:49
 
Fecha de Ingreso: diciembre-2010
Ubicación: Madrid
Mensajes: 42
Antigüedad: 13 años, 4 meses
Puntos: 1
Respuesta: Enviar nueva contraseña generada automaticamente.

Cita:
Iniciado por Ronruby Ver Mensaje
Ah, disculpame por eso.

Como te decía, una de las formas mas fáciles de hacerlo es la siguiente:

- El usuario pierde su contraseña por lo que llena un formulario con su Nombre de Usuario y su Correo con el que se registró.
- Al mandar ese formulario, tu script debe tomar el registro perteneciente a ese correo y ese nombre de usuario (en caso de que exista) y crear un hash, es decir, una cadena de caracteres alfanuméricos (de cualquier longitud).
Ese hash es guardado en la base de datos en un campo en especial para este motivo en la misma tabla del usuario.
- Ahora tu script envia al correo dado por el usuario un enlace que contenga el ID del usuario (o nombre de usuario) y el hash recién creado, algo como:
http://tusitio.com/recuperar-passwor...wfdegwafa54657
- Cuando el usuario va a su correo y hace clic al enlace le llevará a un script que comprueba si el registro para el usuario enviado tiene el hash asignado en la base de datos (el hash que se envio por URL).
- Si el hash concuerda, es decir que se comprobó vía email y podemos proceder a mostrar el formulario para el cambio de la contraseña. Al procesar ese formulario es solamente hacer el UPDATE en el registro correspondiente al usuario.

Puedes optar tambien por generar una contraseña generada aleatoriamente tambien luego de la confirmacion por correo. O hasta enviarle la que tenia, eso solo si la guardas como texto plano en tu BBDD (que es muy improbable por motivos de seguridad)

Espero ahora este mas claro. Cualquier duda me dejas saber.
Hola compañero!!

Perdona que no haya respondido en todos estos días, pero me ha sido imposible con tanto trabajo!!

La explicación es PERFECTA, entiendo correctamente lo que me dices y sí, como comentas, la contraseña de mis usuarios esta cifrada, por lo que mandarle de nuevo la misma es imposible jeje. Lo que no entiendo muy bien como podría hacer son los siguientes pasos:

- Ahora tu script envia al correo dado por el usuario un enlace que contenga el ID del usuario (o nombre de usuario) y el hash recién creado, algo como:
http://tusitio.com/recuperar-passwor...wfdegwafa54657

Se como recoger la información del usuario y crear un hashid nuevo, pero no se como hacer eso que dices de enviar una URL y que al 'clickar' el usuario, compruebe si ese hash es el correcto o no.

Un saludo!

Etiquetas: contraseña, struts
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 15:49.