biblioteca de cifrado AES que funciona en Javascript y Java [cerrado]

0

Una empresa para la que trabajo quiere hacer una pequeña empresa de servicios públicos para permitir que sus empleados compartan información entre ellos. Necesito una biblioteca AES simple que permita al usuario ingresar un mensaje y una contraseña y escupir el texto cifrado. Cuando copian y pegan eso en un software de mensajería estándar como correo electrónico o SMS, el usuario en el otro extremo ingresa la misma contraseña y el texto se descifra.

He podido encontrar bibliotecas que funcionan en Javascript, pero también necesitamos una que funcione en Java. No pude obtener una biblioteca para Java que cifrara lo mismo que la biblioteca de Javascript. Es decir, no pude cifrar usando la aplicación Java y luego descifrar usando la aplicación Javascript.

¿Hay bibliotecas que sean seguras y tengan un cifrado AES compatible con Javascript y código cruzado de Java?

    
pregunta NoobProgrammer 22.08.2018 - 15:35
fuente

1 respuesta

1

Mientras esté realizando el cifrado / descifrado utilizando el mismo cifrado, modo, IV y otros parámetros (que pueden depender del modo, por ejemplo, relleno, datos asociados, longitud de etiqueta), entonces cualquiera de las dos bibliotecas debería ser compatible.

Debería probar las bibliotecas de JavaScript y de Java en los vectores de prueba conocidos para confirmar que ambas funcionan correctamente y para confirmar que sabe que todos los parámetros están configurados correctamente.

Aquí hay un ejemplo específico de dos bibliotecas criptográficas que deben ser coherentes entre sí: la Biblioteca criptográfica de Stanford Javascript ( enlace ) y La biblioteca de Java BouncyCastle ( enlace ).

Verifiqué que las bibliotecas anteriores dan resultados consistentes para AES en modo CCM.

Actualización:

A continuación se muestra un ejemplo de un vector de prueba que podrías probar. Para esta prueba utilicé el cifrado AES y el modo CCM. También usé un parámetro de "longitud de etiqueta" de 64 bits y no usé "datos asociados".

Utilizando la tecla:

b058d2931f46abb2a6062abcddf61d75

Usando el vector de inicialización:

ed77b0e43daccec06c41f472

El texto plano:

  

849c27d7333fe9fb769725b0f29a6b0d977e504976d709b8b6ef542e455504a20243e9ff2ea72da8ab709f983f85349f0ccb63a3c3d70225b8c06305592487193b8599c4aeeecc513d9f71bce28fa0f3a9ba5b310fed302a360b73e7a546793f1dd7b17c1dfcb6348c1f2dfe86dab6

Cifrado al texto cifrado:

  

9f14fa396445bf0e206b123e090edf1c41c6ee6b85ec9963721075b9261006b83a68c3179e2824d45ad4a10e0cd44a66b9c4c12c57424a2dff701eac89d968a64b3b221864a163cc9425ee687bdb283c0b9931b5abde531a6e43737ddea7f715779a8ec15ff06808eb54f0e538c5ef4b4f224418c69b9b

    
respondido por el hft 22.08.2018 - 23:13
fuente

Lea otras preguntas en las etiquetas