una encriptar encriptacion desencriptar contraseña como codigo cifrar cesar c# javascript encryption aes

encriptar - ¿Cómo puedo cifrar una cadena en JavaScript y descifrar esa cadena en C#?



encriptar y desencriptar sha1 java (1)

Simétrico

La forma más sencilla es usar una biblioteca como la biblioteca criptográfica de Stanford Javascript que implementa un estándar (AES en este caso) y usar el mismo cifrado en C # (a través de AesManaged o AesCryptoServiceProvider ).

Obtendrá un cifrado simétrico, pero casi no hay más de un parámetro (la clave) para configurar para que funcionen las dos librerías.

Asimétrico

También puede utilizar un cifrado asimétrico (clave pública) en su lugar. Un atacante que obtenga su código de javascript podrá enviar solicitudes creadas a su servidor pero no podrá interceptar otras solicitudes.

Hay una implementación de RSA en javascript y la clase RSACryptoServiceProvider proporciona el soporte en .Net

Un ejemplo completo está disponible en el proyecto Code, que incluye una ruta al RSA en la biblioteca de JavaScript para admitir el relleno (obligatorio cuando se usa la implementación de .Net)

Nota

Ambas soluciones, por sí mismas, son vulnerables a la reproducción (un atacante intercepta una cadena y la envía más tarde, potencialmente varias veces, al servidor)

He visto esta pregunta antes, aunque en estos casos el póster quería encriptar algo (generalmente una URL) en un sitio web público, y las respuestas fueron en su mayoría "¡no!". En mi caso, sin embargo, el JavaScript se almacenará dentro de un sistema interno no público, por lo que creo que tengo más margen de maniobra. Un ejemplo de una pregunta similar es: cómo cifrar la url en javascript y descifrar en c # - y las respuestas en realidad no responden a la pregunta.

Mi ''JavaScript'' es en realidad ''SuiteScript'', que se define como "SuiteScript es una API basada en JavaScript que brinda a los desarrolladores la capacidad de extender NetSuite", donde NetSuite es un paquete CRM alojado, por lo que cualquier codificación utilizada para cifrar mi cadena sería Oculto para todos, excepto para los empleados de mi empresa (por lo tanto, se considera que están ocultos de manera segura)

Lo que quiero hacer es:

  1. generar una cadena de consulta (por ejemplo, userid = guidValue & firstName = stringValue & company = stringValue & ...),
  2. encripta eso utilizando un método seguro (como AES256, RSA, lo que alguien pueda sugerir que sea seguro),
  3. llamar a una página web en mi sitio web basado en C # pasando esta cadena en la URL (por ejemplo, mysite.com/mypage.aspx?encStr=encryptedString)
  4. haga que la página C # la descifre, separe los pares nombre / valor y procételos.

Busqué en Google y busqué stackoverflow, pero no encontré ningún artículo o respuesta que proporcione instrucciones claras sobre un método de encriptación que puedan usar ambas tecnologías. ¿Alguien tiene tales instrucciones?