Dator > hur du krypterar en stor fil i Java

  • hur du krypterar en stor fil i Java


  • Om du behöver kryptera små filer i Java , räcker det med att läsa all data i minnet , kryptera det och skriva det igen . Men för större filer som kan överskrida storleken på datorns minne , kommer detta tillvägagångssätt vara alltför långsam . Du kommer istället måste skicka data direkt i en ström från filen till den nya krypterade filen
    1
    Skapa en tom textfil med namnet " Encrypter. java " och klistra in följande kod inledande in i det :



    import 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 void kryptera ( SecretKey nyckel , InputStream i , OutputStream ut ) { }



    offentliga void main ( String [ ] args ) { }

    }



    Detta har två metoder : en huvudsaklig metod som kommer att ta två argument-- källfilen och målfilen-och en kryptera metod som tar två bäckar och en krypteringsnyckel.
    2
    Klistra in följande inom parentes av de viktigaste metoden .



    Fil infil=new File ( args [ 0 ] ) ;

    Fil utfil=new File ( args [1 ] ) ;


    försöka
    {

    SecretKey key=KeyGenerator. getInstance ( " DES ) generateKey () ; .

    Encrypter. encrypt ( nyckel , nya FileInputStream ( infil ) , nya FileOutputStream ( utfil )) ;

    } catch ( FileNotFoundException e) {

    } catch ( NoSuchAlgorithmException e) {

    }



    Detta skapar en hemlig nyckel för Data Encryption Standard ( DES ) metod för kryptering och omedelbart kallar kryptera metod , tillsammans med nyckel och en bäck för källan och destinationen filer .
    3
    Klistra in följande i kryptera metod: .


    försöka
    {

    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 , nyckel , paramSpec ) ,





    ut=nya CipherOutputStream ( ut , c);

    int count=0 ;

    byte [ ] buffer=new byte [ 1024 ] ;



    medan ( ( count=i. read ( buffert ) ) >=0 ) {

    out. write ( buffert , 0 , räkna ) ,

    }

    out. close () ;

    } catch ( IOException e) {

    } catch ( InvalidAlgorithmParameterException e) {

    } catch ( InvalidKeyException e) {

    } catch ( NoSuchAlgorithmException e) {

    } catch ( NoSuchPaddingException e) {

    }



    Detta sätter upp en initieringsvektor att använda för DES chiffer . Data läses från InputStream , krypterade och skrivit ut 1024 byte i taget , så att även flera gigabyte filer som ska krypteras effektivt utan att överbelasta minnet .
    4 .
    Spara ditt arbete . Om du använder en Java integrerade utvecklingsmiljö (IDE ) , kan du kompilera genom att klicka på " Build " -knappen . Annars måste du köra följande kommando i din kommandotolken för att kompilera den .



    javac Encrypter. java
    5

    Om du vill kryptera en fil skriver du följande kommando i en kommandotolk :



    java Kryptera KÄLLKODFIL destinationFile



    Byt ut " källfilen " och " destinationFile " med filnamnen behövs .

    tips och varningar


  • hjälp av en Java IDE som NetBeans eller Eclipse rekommenderas . Men om du måste öppna kommandotolken kan du göra detta i Microsoft Windows genom att klicka på " Start > Kör " och skriva " cmd " ( utan citattecken ).

Previous:nothing Next:hur man kan förebygga kopiera och klistra in





Relaterade artiklar


  • hur man ordnar siffror från lägsta till högsta med Visual Basic
  • Hur kan jag få dagens datum att komma upp automatiskt med Visual Basic ?
  • java ram tutorials
  • formulär i Visual Basic i projekt av skolväsendet
  • Hur konvertera till UTF- 8 med hjälp av Visual Basic
  • Hur du tar ut bokstäver men lämna numeriska tecken i SQL
  • hur de kan förmedla ett objekt via undantaget java klass
  • NET Framework 3 krav
  • hur man skapar XML från databasen med hjälp av Visual Basic
  • hur man söka efter en fil i C #