5

Sto valutando la possibilità di utilizzare app Chrome per il front-end di alcune applicazioni su cui sto lavorando. (Per inciso, se qualcuno ha qualche idea su questo - mettilo nei commenti)Codifica RSA e AES

Vorrei usare chrome.socket e vorrei che le connessioni fossero sicure, quindi avrò bisogno della crittografia RSA e AES che sarà compatibile con altrettante implementazioni tecnologiche di backend possibile (C#, Java, ...). Quello che voglio dire con questo è la modalità diverse, lunghezze chiave, specifici dettagli implementativi ...

ora ho fatto un po 'di ricerca me stesso e trovato https://code.google.com/p/crypto-js/ per la crittografia AES. Questa è ancora la libreria accettata da utilizzare o ce n'è un'altra?

... tuttavia, Non riesco a trovare una libreria per RSA?

Sulla nota della sicurezza, non prevedo questo essere un problema in quanto si tratta di un'estensione Chrome, in modo che il codice HTML/JavaScript non è essere inviate su Internet, Ma c'è qualche altra implicazione di sicurezza che ho Hanno perso?

+0

'chrome.socket' (non c'è chrome.sockets) non è disponibile in estensioni di Chrome. – sowbug

+0

corretto. Grazie. – Cheetah

+1

OK, ma 'chrome.socket' non è ancora disponibile nelle estensioni di Chrome. – sowbug

risposta

3

Si potrebbe provare a utilizzare questo:

Stanford Javascript Crypto libreria: http://crypto.stanford.edu/sjcl/

SJCL è sicuro. Utilizza l'algoritmo AES standard del settore a 128, 192 o 256 bit; la funzione hash SHA256; il codice di autenticazione HMAC; il rafforzatore di password PBKDF2; e le modalità di crittografia autenticata CCM e OCB.

Controllare l'API qui: http://bitwiseshiftleft.github.io/sjcl/doc/

Stanford ha anche una pagina che mostra RSA (tra gli altri) di cifratura in Javascript: http://www-cs-students.stanford.edu/~tjw/jsbn/

RSA e ECC in JavaScript:

Il jsbn library è un'implementazione rapida e portatile di matematica di grande numero in puro JavaScript, che consente la crittografia a chiave pubblica e altre applicazioni su browser desktop e mobili.

Inoltre affermano che è al 100% interoperabile con openssl e dispone di istruzioni su come è possibile confermarlo.

Si potrebbe anche provare CryptoJS: https://code.google.com/p/crypto-js/

CryptoJS è una crescente collezione di algoritmi di crittografia standard e garantire implementati in JavaScript utilizzando le best practice e modelli. Sono veloci e hanno un'interfaccia coerente e semplice.

+0

ma il cryptoJS di google non supporta RSA (come parzialmente è stata la domanda), giusto? – humanityANDpeace

+0

@humanityandpeace sembra che ci sia il codice proposto per questo: https://groups.google.com/forum/m/#!topic/crypto-js/xUdAHo7RXEg –

0

Sembra che potresti preferire un'implementazione TLS completa qui. Dovresti essere in grado di avvolgere il cromo.presa con un involucro TLS utilizzando fucina (un'implementazione JavaScript del TLS):

https://github.com/digitalbazaar/forge

0

sto sottolineando alcuni dei miei lavori che ho fatto per l'università, è probabilmente pieno di bug e potrebbe essere fatto in una migliore modo. È abbastanza veloce e funziona bene con le chiavi grandi. È possibile utilizzare RSA con le chiavi con n bit.

Controllare i test se è necessario capire come funziona. Qualsiasi bug o miglioramento sarebbe comunque apprezzato.

Nota, potrebbe essere necessario cercare un po 'perché non c'è solo RSA.

https://github.com/llacroix/rsa-js