Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> Προγραμματισμός Java

Πώς να κρυπτογραφήσει ένα μεγάλο αρχείο σε Java

Αν χρειαστεί να κρυπτογραφήσετε μικρά αρχεία σε Java , είναι αρκετό για να φορτώσει όλα τα δεδομένα στη μνήμη , μπορείτε να τα κρυπτογραφήσετε και να το γράψετε πίσω . Ωστόσο , για τα μεγαλύτερα αρχεία που μπορεί να υπερβαίνει το μέγεθος της μνήμης του υπολογιστή , αυτή η προσέγγιση θα είναι πάρα πολύ αργή . Θα πρέπει αντ 'αυτού να περάσει τα δεδομένα απευθείας σε ένα ρεύμα από το αρχείο στο νέο κρυπτογραφημένο αρχείο . Τα πράγματα που θα χρειαστείτε
Netbeans
Η Εμφάνιση Περισσότερες οδηγίες
Η 1

Δημιουργήστε ένα κενό αρχείο κειμένου που ονομάζεται " Encrypter.java " και επικολλήστε τον παρακάτω κώδικα αρχική σε αυτό :

εισαγωγή java.io.File ? java.io.FileInputStream εισαγωγής ? java.io.FileNotFoundException εισαγωγής ? java.io.FileOutputStream εισαγωγής ? java.io.IOException εισαγωγής ? java.io.InputStream εισαγωγής ? java εισαγωγής . io.OutputStream ? java.security.InvalidAlgorithmParameterException εισαγωγής ? java.security.InvalidKeyException εισαγωγής ? java.security.NoSuchAlgorithmException εισαγωγής ? εισαγωγή java.security.spec.AlgorithmParameterSpec ? javax.crypto.Cipher εισαγωγής ? javax.crypto.CipherOutputStream εισαγωγής ? Javax εισαγωγής . crypto.KeyGenerator ? javax.crypto.NoSuchPaddingException εισαγωγής ? javax.crypto.SecretKey εισαγωγής ? εισαγωγή javax.crypto.spec.IvParameterSpec ?

δημόσια τάξη Encrypter {

δημόσια στατική άκυρη την κρυπτογράφηση ( SecretKey κλειδί , InputStream σε , OutputStream out ) { }

δημόσια στατική άκυρη κύρια ( String [ ] args ) { } }

Αυτό έχει δύο μεθόδους: α κύρια μέθοδος που θα λάβει δύο επιχειρήματα - το αρχείο προέλευσης και τον προορισμό του αρχείου - και μια μέθοδος κρυπτογράφηση που λαμβάνει δύο ρεύματα και ένα κλειδί κρυπτογράφησης 2

Επικολλήστε τον ακόλουθο μέσα στις αγκύλες της κύριας μεθόδου :

αρχείο βρέθηκε το αρχείο . = new File ( args [ 0 ] ) ? Αρχείο outfile = new File ( args [ 1 ] ) ?

try { SecretKey key = KeyGenerator.getInstance ( " DES " ) generateKey ()? . Encrypter.encrypt ( κλειδί, νέα FileInputStream ( βρέθηκε το αρχείο ) , νέα FileOutputStream ( outfile ) ) ? } αλιευμάτων ( FileNotFoundException ε) { } αλιευμάτων ( NoSuchAlgorithmException e ) { }

Αυτό δημιουργεί ένα μυστικό κλειδί για το Data Encryption Standard ( DES ) μέθοδος κρυπτογράφησης και αμέσως καλεί τη μέθοδο κρυπτογράφηση , μαζί με το πλήκτρο και ένα ρεύμα για τα αρχεία προέλευσης και προορισμού
εικόνων 3

Επικολλήστε τον ακόλουθο στη μέθοδο κρυπτογράφηση : .

try { byte [ ] iv = νέα byte [ ] { ( byte ) 0x8E , 0x12 , 0x39 , ( byte ) 0x9C , 0x07 , 0x72 , 0x6F , 0x5A } ?

AlgorithmParameterSpec paramSpec = νέα IvParameterSpec ( iv ) ? Cipher c = Cipher.getInstance ( " DES/CBC/PKCS5Padding ")? c.init ( Cipher.ENCRYPT_MODE , κλειδί , paramSpec ) ?

out = νέα CipherOutputStream ( out , γ) ? μετράνε int = 0 ? byte [ ] buffer = new byte [ 1024 ] ?

ενώ ( ( count = in.read ( buffer ) ) > = 0 ) { out.write ( buffer , 0 , μετράνε) ? } έξω . κλείσιμο ( ) ? } αλιευμάτων ( IOException e ) { } αλιευμάτων ( InvalidAlgorithmParameterException ε) { } αλιευμάτων ( InvalidKeyException ε) { } αλιευμάτων ( NoSuchAlgorithmException e ) { } αλιευμάτων ( NoSuchPaddingException e ) { }

Αυτό δημιουργεί ένα διάνυσμα αρχικοποίησης που θα χρησιμοποιηθεί για την κρυπτογράφηση DES . Τα δεδομένα διαβάζονται από το InputStream , κρυπτογραφημένη και ολογράφως 1024 byte σε μια στιγμή , που επιτρέπει ακόμη και τα αρχεία πολυ - gigabyte που πρόκειται να κρυπτογραφηθεί αποτελεσματικά, χωρίς υπερφόρτωση της μνήμης .
Η 4

Αποθηκεύστε την εργασία σας . Εάν χρησιμοποιηθεί ένα Java ολοκληρωμένο περιβάλλον ανάπτυξης ( IDE ) , μπορείτε να συγκεντρώσετε κάνοντας κλικ στο κουμπί "Build " . Διαφορετικά , θα πρέπει να εκτελέσετε την ακόλουθη εντολή στη γραμμή εντολών σας για να συγκεντρώσει :

javac Encrypter.java
5

Για να κρυπτογραφήσετε ένα αρχείο , πληκτρολογήστε την ακόλουθη εντολή σε μια εντολή προτροπή :

java Κρυπτογράφηση sourcefile destinationFile

Αντικατάσταση " sourcefile " και " destinationFile " με τα ονόματα αρχείων που απαιτούνται
Η
εικόνων .

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα