Esercitazioni sulla crittografia della chiave pubblica in Java? [chiuso]
-
19-08-2019 - |
Domanda
Sono stato in grado di trovare informazioni sulla crittografia simmetrica e sull'hash, ma ho avuto un bel po 'di problemi a trovare molte informazioni su qualsiasi tipo di crittografia a chiave pubblica per Java. Quello che mi piacerebbe fare è creare un programma di prova del concetto molto semplice che prende una stringa (o un file suppongo), lo crittografa con una chiave pubblica e poi lo decodifica con una chiave privata.
Qualunque link o esempio di tutorial sarebbe apprezzato. Voglio solo fare qualcosa che dimostri come è possibile utilizzare la crittografia a chiave pubblica in Java.
Soluzione
Ci sono alcune risorse sul web al riguardo. Fondamentalmente gira intorno alla classe KeyPairGenerator.
Vedi http://www.informit.com/articles/article .aspx? p = 170967 & amp; seqNum = 4 per un programma di esempio.
Altri suggerimenti
Normalmente, si utilizza la crittografia a chiave pubblica per crittografare una chiave simmetrica, in parte perché la crittografia a chiave pubblica è molto lenta. In genere, invieresti al destinatario quanto segue, in modo che possano decrittografare il tuo messaggio:
- La chiave simmetrica, crittografata con la chiave pubblica del destinatario.
- Parametri per gli algoritmi utilizzati, in genere un vettore di inizializzazione per la cifra simmetrica.
- Identificatori per gli algoritmi di crittografia utilizzati.
- Il testo cifrato & # 8212; il messaggio reale, crittografato sotto la cifra simmetrica.
Ho trovato il codice di esempio nel JCE documentazione sufficiente per far funzionare le cose.
Il formato standard per raggruppare tutte queste informazioni è la Sintassi dei messaggi crittografici, o CMS, che viene utilizzata da S / MIME nelle applicazioni di posta elettronica. Consiglio di utilizzare le librerie di Bouncy Castle ; sono solidi, abbastanza semplici e attivamente mantenuti. La documentazione di riferimento è un po 'debole, ma forniscono esempi di codice.