Ver Mensaje Individual
  #4  
Antiguo 08-01-2009
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.141
Reputación: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Pero, yo sigo sin entender porqué es necesario que "cifres" ("encriptes") nada en el cliente. Supón que yo guardo en la base de datos el "hash MD5" de una determinada cadena, que esla contraseña de un usuario. Claro que yo podría enviar al servidor la cadena "cifrada", directamente, pero, ¿para qué voy a hacerlo? Es algo que puedo hacer perfectamente en el servidor. Más aún, todo lo que haga en el cliente quedará "a la vista", pero, en el servidor sólo yo sabré si la contraseña al cabo termina siendo "cifrada" con MD5, con SHA, o con cualquier otro algoritmo que quiera utilizar.

Tú dices:

Cita:
(...) Otra cosa muy diferente es el manejo de como enviar al servidor los datos de autenticación del usuario.

El caso es que esos datos, al menos el password, deben ser enviados encriptados desde el cliente; es decir, en el cliente debe ejecutarse una rutina que reciba los caracteres digitados por el usuario y los encripte, en el cliente, para enviarselos al servidor ya encriptados.
Pero eso debe ser un requerimiento de tu aplicación (que podrías acaso replantearte). Las aplicaciones a las que yo estoy acostumbrados envían información al servidor "en claro". Podrías acaso querer utilizar algo como "HTTPS", de forma que se estableciera una conexión segura entre tu servidor y un determinado cliente, pero, la contraseña podría seguir enviándose "en claro". En el servidor ya podré hacer yo lo que necesite con esa contraseña que me llega desde el cliente, dicho de otro modo, no tengo necesidad de "cifrar" la contraseña en el cliente, cuando puedo hacerlo en el servidor, y además resulta más seguro, aunque sólo sea porque entonces se tratará de un proceso que no quedará a la vista de nadie.

Ahora bien, mirando un poco para otro lado, es decir, suponiendo que tenemos que trabajar en el cliente, en este caso me parece que no hay otra sino Javascript, tal vez algún "applet" de Java, un "ActiveX", un aplicación "Flash"... cualquiera de estas "tecnologías" te ofrecen la posibilidad de trabajar en el cliente, y en la mayoría de ellas (por no decir en todas) encontrarás disponibles implementaciones de ciertos algoritmos que podrás utilizar para cifrar y descifrar información. No sé si las cosas van por ahí o no...
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita