Libreria di crittografia AES che funziona su Javascript e Java [chiuso]

0

Una società per cui lavoro vuole fare una piccola utility per consentire ai propri dipendenti di condividere le informazioni tra loro. Ho bisogno di una semplice libreria AES che permetta all'utente di inserire un messaggio e una password e di sputare il testo crittografato. Quando li copia e incolla in un software di messaggistica standard come e-mail o SMS, l'utente dall'altra parte inserisce la stessa password e il testo viene decifrato.

Sono stato in grado di trovare librerie che funzionano su Javascript, ma abbiamo anche bisogno di una che funzioni su Java. Non ero in grado di ottenere una libreria per Java che fosse crittografata come la libreria Javascript. Significa che non potrei crittografare usando l'app Java e quindi decifrare usando l'app JavaScript.

Esistono librerie che sono sicure e hanno una crittografia AES compatibile con JavaScript e codice incrociato Java?

    
posta NoobProgrammer 22.08.2018 - 15:35
fonte

1 risposta

1

Finché si esegue la crittografia / decrittografia utilizzando lo stesso codice, modalità, IV e altri parametri (che possono dipendere dalla modalità, ad esempio, padding, dati associati, lunghezza tag), quindi qualsiasi due librerie dovrebbe essere compatibile.

Dovresti testare sia JavaScript che le librerie Java sui test-vettori noti per confermare che entrambi funzionino correttamente e per confermare che sai che tutti i parametri sono impostati correttamente.

Ecco un esempio specifico di due librerie crittografiche che dovrebbero essere reciprocamente coerenti: la libreria di crittografia Javascript di Stanford ( link ) e la libreria Java di BouncyCastle ( link ).

Ho controllato che le librerie precedenti fornissero risultati coerenti per AES in modalità CCM.

Aggiornamento:

Di seguito è riportato un esempio di vettore di prova che potresti provare. Per questo test ho usato il codice AES e la modalità CCM. Ho anche usato un parametro "lunghezza tag" di 64 bit e non ho usato "dati associati".

Utilizzo della chiave:

b058d2931f46abb2a6062abcddf61d75

Utilizzo del vettore di inizializzazione:

ed77b0e43daccec06c41f472

Il testo semplice:

849c27d7333fe9fb769725b0f29a6b0d977e504976d709b8b6ef542e455504a20243e9ff2ea72da8ab709f983f85349f0ccb63a3c3d70225b8c06305592487193b8599c4aeeecc513d9f71bce28fa0f3a9ba5b310fed302a360b73e7a546793f1dd7b17c1dfcb6348c1f2dfe86dab6

Crittografa al testo cifrato:

9f14fa396445bf0e206b123e090edf1c41c6ee6b85ec9963721075b9261006b83a68c3179e2824d45ad4a10e0cd44a66b9c4c12c57424a2dff701eac89d968a64b3b221864a163cc9425ee687bdb283c0b9931b5abde531a6e43737ddea7f715779a8ec15ff06808eb54f0e538c5ef4b4f224418c69b9b

    
risposta data 22.08.2018 - 23:13
fonte

Leggi altre domande sui tag