![Antiguo](http://static.forosdelweb.com/fdwtheme/images/statusicon/post_old.gif)
09/01/2005, 12:15
|
| | Fecha de Ingreso: diciembre-2003
Mensajes: 54
Antigüedad: 21 años, 2 meses Puntos: 0 | |
Una forma... En principio, una solución podria ser:
* Para no mandar la contraseña de forma que se pueda desencriptar (ni por el servidor ni por nadie) puedes hacer un hash md5 de la contraseña en js (hay scripts hechos)
* Luego, para que lo que se transmita al servidor no sea algo estatico, que se pueda falsificar, podrias mandar un valor aletorio (similar a lo que haces con la clave xor), concatenarlo con el md5 de la clave y luego hacer un nuevo md5.
* Del lado del servidor, tomarias el md5 de la clave que tienes en de la bdd, y harias lo mismo que para el punto anterior y luego compararias los resultados.
En resumen:
Al cliente le mandas un valor aleatorio, cuando este intenta logearse haces un md5 de la clave, al resultado le concatenas el valor aleatorio y vuelves a hacer md5.
En el servidor, obtienes el md5 de la clave guardada en la bdd, concatenas el valor que le mandaste al cliente, haces md5 y luego comparas el resultado con lo que te mando el cliente. Como aclaración, no tienes que utilizar del valor aleatorio que te manda el cliente(si es que lo envias en el formulario como un campo hidden), ya que puede ser falsificado, sino que debes guardar el valor en sesion o utilizar alguna otra medida para garantizar que el valor no fue alterado (ej:mandar otro valor al cliente que sea el mismo valor aleatorio pero encriptado con una clave privada)
Seguramente hay variantes a lo anterior, pero creo que esto te puede servir.
Saludos |