Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Ako šifrovať veľký súbor v Jave

Ak potrebujete šifrovať malé súbory v Jave , je to dosť načítať všetky dáta do pamäti , zašifrovať a zapísať ho späť von . Avšak , pre väčšie súbory , ktoré môžu presiahnuť veľkosť pamäte počítača , tento prístup bude príliš pomalý . Namiesto toho sa budete musieť odovzdávať dáta priamo v prúde zo súboru do novo šifrovaného súboru . Veci , ktoré budete potrebovať
Netbeans
Zobraziť ďalšie inštrukcie Cestuj 1

Vytvorte prázdny textový súbor s názvom " Encrypter.java " a vložte nasledujúci počiatočný kód do neho :

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

public class Encrypter {

public static void šifrovanie ( SecretKey kľúč , InputStream v , OutputStream out ) { }

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

To má dve metódy : hlavnú metódu , ktorá bude trvať dva argumenty - súbor zdrojový súbor a cieľový - a metódu šifrovania , ktorá trvá dva prúdy a šifrovací kľúč
2

vložte nasledujúci v zátvorke hlavného metódy :

súbor Infil . = new File ( args [ 0 ] ) ; súboru outfile = new File ( args [ 1 ] ) ;

try { SecretKey kľúč = KeyGenerator.getInstance ( " DES " ) GenerateKey ( ) ; . Encrypter.encrypt ( kľúč , nový FileInputStream ( inSoubor ) , nové FileOutputStream ( outSoubor ) ) ; } catch ( FileNotFoundException e ) { } catch ( NoSuchAlgorithmException e ) { }

Tým sa vytvorí tajný kľúč pre Data Encryption Standard ( DES ) spôsob šifrovania a okamžite volá metódu šifrovania , spolu s kľúčom a prúd pre zdrojové a cieľové súbory
3

vložte nasledujúci do metódy zašifrovať : .

try { byte [ ] = new byte aj v [ ] { (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 , kľúč , paramSpec ) ;

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

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

nastaví inicializačný vektor použiť pre DES šifry . Dáta sú čítané z InputStream , šifrované a napísaná 1024 bajtov v čase , čo umožňuje aj multi - gigabyte súbory , ktoré sa majú účinne šifrovaná bez preťažovania pamäti .
4

Uložte svoju prácu . Ak ste použili Java integrované vývojové prostredie ( IDE ) , môžete si zostaviť kliknutím na tlačidlo " Build " . V opačnom prípade budete musieť spustiť nasledujúci príkaz príkazového riadka ku kompilácii :

javac Encrypter.java
5

Ak chcete šifrovať súbor , zadajte nasledujúci príkaz do príkazu výzva :

java šifrovanie sourceFile destinationFile

Nahradiť " sourceFile " a " destinationFile " s názvami súborov potrebných
.

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené