Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza Informatica >> Programmazione >> Java Programming >> .

Come per crittografare un file di grandi dimensioni in Java

Se è necessario crittografare i file di piccole dimensioni in Java , è sufficiente per caricare tutti i dati in memoria, cifrare e scrivere di nuovo fuori . Tuttavia, per i file di grandi dimensioni che possono superare la dimensione della memoria del computer , questo approccio sarà troppo lento . Sarà invece necessario passare i dati direttamente in un flusso dal file per il nuovo file criptato . Cose che ti serviranno
Netbeans
Mostra più istruzioni
1

creare un file di testo vuoto denominato " Encrypter.java " e incollare il seguente codice iniziale in esso :

importazione java.io.File ; java.io.FileInputStream importazione; java.io.FileNotFoundException importazione; java.io.FileOutputStream importazione; java.io.IOException importazione; java.io.InputStream importazione; importazione java . io.OutputStream ; java.security.InvalidAlgorithmParameterException importazione; java.security.InvalidKeyException importazione; java.security.NoSuchAlgorithmException importazione; java.security.spec.AlgorithmParameterSpec importazione; javax.crypto.Cipher importazione; javax.crypto.CipherOutputStream importazione; importazione javax . crypto.KeyGenerator ; javax.crypto.NoSuchPaddingException importazione; importazione javax.crypto.SecretKey ; importazione javax.crypto.spec.IvParameterSpec ;

class Encrypter pubblico {

public static void encrypt ( secretkey chiave , in InputStream , OutputStream out ) { }

public static void main (String [] args ) { } }

Questo ha due metodi : un metodo main che avrà due argomenti - il file sorgente e file di destinazione - e di un metodo di cifrare che prende due corsi d'acqua e una chiave di cifratura
2

Incollare il seguente all'interno delle parentesi del metodo main :

file inFile . = new File ( args [ 0 ] ) ; File outFile = new File ( args [ 1 ] ) ;

try { secretkey key = KeyGenerator.getInstance ( " DES " ) generateKey ( ) . Encrypter.encrypt ( chiave , new FileInputStream ( inFile ) , nuovo FileOutputStream ( outFile ) ) ; } catch ( FileNotFoundException e) { } catch ( NoSuchAlgorithmException e) { }

Questo crea una chiave segreta per il Data Encryption Standard ( DES ) metodo di crittografia e immediatamente chiamato il metodo Encrypt , insieme con la chiave e un flusso per il file di origine e di destinazione
3

incolla quanto segue nel metodo Encrypt : .

try { byte [ ] iv = new byte [ ] { ( byte) 0x8E , 0x12 , 0x39 , ( byte) 0x9C , 0x07 , 0x72 , 0x6F , 0x5A } ;

AlgorithmParameterSpec paramSpec = new IvParameterSpec ( iv ) , Cipher c = Cipher.getInstance ( " DES/CBC/PKCS5Padding " ) ; c.init ( Cipher.ENCRYPT_MODE , chiave , paramSpec ) ;

out = new CipherOutputStream ( fuori , c); int count = 0 ; byte [ ] buffer = new byte [ 1024] ;

while ( (count = in.read (buffer ) ) > = 0 ) { out.write (buffer , 0 , count) ; } out . close () ; } catch ( IOException e) { } catch ( InvalidAlgorithmParameterException e) { } catch ( InvalidKeyException e) { } catch ( NoSuchAlgorithmException e) { } catch ( NoSuchPaddingException e) { }

Questo imposta un vettore di inizializzazione da utilizzare per la cifratura DES . I dati vengono letti dal InputStream , criptati e scritti 1024 byte alla volta , permettendo anche i file multi-gigabyte per essere efficiente criptato senza sovraccaricare la memoria .
4

Salvare il lavoro . Se si utilizza un ambiente di sviluppo integrato Java ( IDE ) , è possibile compilare cliccando sul pulsante "Build" . In caso contrario , è necessario eseguire il seguente comando nel prompt dei comandi per compilarlo :

javac Encrypter.java
5

Per crittografare un file, digitare il seguente comando in un comando prompt di : .

java Encrypt sourceFile destinationFile

Sostituire " sourceFile " e " destinationFile " con i nomi dei file necessari

 

Programmazione © www.354353.com