2008-10-12 6 views

Respuesta

4

hay usos para hash funciones en Javascript, por ejemplo, la validación de lado captchas cliente (mediante la comparación de hash en la sesión de control calculado a partir de la entrada). Obviamente, los usos son limitados ya que se ejecuta casi exclusivamente en el lado del cliente (y no se puede confiar en la entrada del cliente), pero el potencial está ahí.

+1

La pregunta de si uno puede confiar o no en la entrada del cliente es completamente ortogonal a la pregunta de si Javascript es una plataforma adecuada para la criptografía. Este [artículo reciente] (http://www.matasano.com/articles/javascript-cryptography/) argumenta que no, [algunas personas no están de acuerdo] (http://news.ycombinator.com/item?id=2935220) . – Sebastian

0

no veo por qué no podría una función criptográfica ser implementado usando javascript.

However..Cryptography es un proceso que consume muchos recursos.

Comparado con el código compilado Javascript es slooooooow.

+0

Ya no es así, gracias a V8, Squirrelfish y TraceMonkey. Solo IE se queda atrás. –

+0

Sí, solo queda el 80% de la cuota de mercado ... – gizmo

+0

incluso V8 es lento en comparación con el código compilado estático. –

1

Puede encriptar datos usando JavaScript; sin embargo, no estoy seguro de los beneficios. Porque si está utilizando, digamos bas64, necesita enviar la clave de cifrado al cliente, y si alguien puede interceptar la información cifrada, probablemente también pueda interceptar la clave de cifrado.

Nunca debe usar esto para reemplazar certificados SSL.

+0

Sí, eso es verdad No puedo pensar en la forma de pasar la clave de forma segura del lado del cliente. He editado mi comentario – alexmac

+0

¿qué ocurre con HTTPS? –

+0

Como dijo, JS no se debe usar para el cifrado de extremo a extremo; sin embargo, hay algunos servicios que ofrecen correo electrónico seguro al cifrar/descifrar el lado del cliente y almacenar solo la información cifrada en el servidor. –

1

Nunca se puede usar javascript como una plataforma segura para la transferencia segura de datos ...

Pero es posible hacer un MD5 o de otro tipo de cifrado del lado del cliente, que le da una forma razonablemente segura de validación podría probar el lado del servidor! -)

0

Puedo ver al menos un uso: Si está enviando datos cifrados del cliente, descifrarlos en JavaScript en función de una clave/contraseña que el usuario ingresa localmente. Esto presupone una clave compartida o una contraseña conocida que utilizó para encriptar originalmente los datos en el servidor. Además, estas funciones son frecuentemente usadas por JavaScript malicioso u ofuscado.

0

La respuesta depende de lo que quieras hacer.

Si desea utilizar la criptografía en el lado del cliente, fuera de línea, aplicaciones web persistentes entonces sí. Entonces, por ejemplo, ¿desea encriptar todos los datos que se almacenan en una base de datos incrustada utilizando las especificaciones de HTML 5 'globalStorage()'. Luego use javascript crypto, porque lo más probable es que no tenga una conexión para manejar toda la cripto en el lado del servidor.

Si no utilizar los métodos probados

Cuestiones relacionadas