Come crittografare un file in Java

July 9

Come crittografare un file in Java


Fin dalla versione 1.4, Java SDK Standard Edition ha incluso l'estensione Java Cryptography per impostazione predefinita. Questo fornisce un framework unificato per gli sviluppatori Java di utilizzare una varietà di algoritmi di crittografia standard nelle loro applicazioni. Utilizzando uno dei algoritmi standard che vengono con il Java Cryptography Extension è abbastanza facile, e un'applicazione molto semplice cifratura può essere creato in solo poche decine di righe per proteggere i propri file di dati.

istruzione

1 Creare la classe FileEncrypter. <br /> <br /> public class FileEncrypter {<br /> principali ([] String args) public static void getta Eccezione {<br /> << Codice Inserisci qui >> <br /> <br />}} <br /> <br /> La classe richiederà le seguenti importazioni: <br /> <br /> importazione java.io.File <br /> <br /> GO importazione java.io.FileInputStream <br /> GO <br /> <br /> importazione java.io.FileOutputStream GO <br /> importazione javax.crypto.Cipher <br /> <br /> GO importazione javax.crypto.KeyGenerator <br /> <br /> GO importazione javax.crypto.SecretKey <br /> GO <br /> <br /> ci sono un certo numero di estensioni e miglioramenti si dovrebbe essere in grado di aggiungere a questa classe da soli, ma fornirà una funzionalità di crittografia di base per voi costruire caratteristiche come un'interfaccia utente in cima.

2 Dichiarare e inizializzare le variabili di cui ha bisogno. Al minimo, avrete bisogno di un Cipher, un KeyGenerator e secretkey. Avrete anche bisogno di un array di byte ciascuna per contenere i dati crittografati e non crittografati. <br /> <br /> byte [] plainData <br /> <br /> GO byte [] EncryptedData <br /> <br /> GO KeyGenerator keygen = KeyGenerator.getInstance (\ "DES \") <br / > GO <br /> secretkey key = keygen.generateKey () <br /> <br /> GO Cipher cifra = Cipher.getInstance (\ "DES / BCE / PKCS5Padding \") <br /> <br /> GO cifra .init (Cipher.ENCRYPT_MODE, chiave) <br /> GO <br /> <br /> Questa funzione utilizza la crittografia DES, ma il Cryptography Extension Java include anche una varietà di altri regimi. Avrete anche bisogno di inizializzare un file di input e di output e compilare la matrice plainData dai dati nel file di input. <br /> <br /> File f = new File (\ "input.txt \") <br /> <br /> GO FileInputStream in = new FileInputStream (f) <br /> <br /> GO plainData = new byte [(int) f.length ()] <br /> <br /> GO in.read (plainData);

3 Eseguire la crittografia. Questo è in realtà il compito più facile per voi per eseguire e può essere realizzato in una sola riga. <br /> <br /> EncryptedData = cipher.doFinal (plainData);

4 Scrivere i dati crittografati in un nuovo file. <br /> <br /> FileOutputStream target = new FileOutputStream (new File (\ "Encrypted.txt \")) <br /> <br /> GO target.write (EncryptedData) <br /> <br /> GO target.close ();

Consigli e avvertenze

  • Ci sono una serie di miglioramenti che può essere fatto a questo programma. Come scritto, per esempio, non immagazzinare la chiave segreta generata in modo casuale, come il programmatore individuo può essere il miglior giudice di come affrontare questo pezzo sensibile delle informazioni. Inoltre, i programmatori possono voler aggiungere argomenti della riga di comando come "input" e "output". Infine, il programma potrebbe essere leggermente ristrutturata per realizzare una migliore Object Oriented tecniche di progettazione.