Hvordan kryptere en fil i Java

Hvordan kryptere en fil i Java


Helt siden versjon 1.4, har Java SDK Standard Edition inkludert Java Cryptography Extension som standard. Dette gir et enhetlig rammeverk for Java-utviklere til å bruke en rekke standard krypteringsalgoritmer i sine søknader. Bruk en av de standard algoritmer som følger med Java Cryptography Extension er ganske lett, og kan lages en veldig enkel kryptering program i bare et par dusin linjer for å sikre dine egne datafiler.

Bruksanvisning

1 Lag FileEncrypter klassen. <br /> <br /> public class FileEncrypter {<br /> public static void main (String [] args) kaster unntak {<br /> << Sett inn kode her >> <br />} <br />} <br /> <br /> klassen vil kreve følgende import: <br /> <br /> import java.io.File <br /> GO <br /> import java.io.FileInputStream <br /> GO <br /> import java.io.FileOutputStream <br /> GO <br /> import javax.crypto.Cipher <br /> GO <br /> import javax.crypto.KeyGenerator <br /> GO <br /> import javax.crypto.SecretKey <br /> GO <br /> <br /> det finnes en rekke utvidelser og forbedringer bør du være i stand til å legge til denne klassen på egen hånd, men det vil gi en grunnleggende kryptering funksjonalitet for å bygge funksjoner som et brukergrensesnitt på toppen av.

2 Erklærer og initialisere variablene du trenger. På minimum, trenger du en Cipher, en keygenerator og en SecretKey. Du trenger også en byte array hver for å holde de krypterte og ukrypterte data. <br /> <br /> byte [] plainData <br /> GO <br /> byte [] encryptedData <br /> GÅ <br /> keygenerator keygen = KeyGenerator.getInstance (\ "DES \") <br / > GÅ <br /> SecretKey key = keygen.generateKey () <br /> GÅ <br /> cipher chiffer = Cipher.getInstance (\ "DES / ECB / PKCS5Padding \") <br /> GO <br /> chiffer .init (Cipher.ENCRYPT_MODE, key) <br /> GO <br /> <br /> Denne funksjonen vil bruke DES-kryptering, men Java Cryptography Extension inneholder også en rekke andre ordninger. Du trenger også å initialisere en inngang og utgang fil og fylle plainData utvalg fra dataene i inndatafilen. <br /> <br /> File f = new File (\ "input.txt \") <br /> GO <br /> Fileinputstream i = new Fileinputstream (f) <br /> GÅ <br /> plainData = ny byte [(int) f.length ()] <br /> GO <br /> in.read (plainData);

3 Utfør kryptering. Dette er faktisk den enkleste oppgaven for deg å utføre og kan utføres på en enkelt linje. <br /> <br /> encryptedData = cipher.doFinal (plainData);

4 Skriv de krypterte data til en ny fil. <br /> <br /> Fileoutputstream target = new Fileoutputstream (new File (\ "encrypted.txt \")) <br /> GO <br /> target.write (encryptedData) <br /> GO <br /> target.close ();

Hint

  • Det finnes en rekke forbedringer som kan gjøres til dette programmet. Som skrevet, for eksempel, betyr det ikke lagre tilfeldig generert SecretKey som den enkelte programmerer kan være den beste til å bedømme hvordan man skal håndtere denne sensitiv opplysning. I tillegg kan programmerere vil legge kommandolinjeargumenter som "input" og "output". Endelig kan programmet bli litt restrukturert for å implementere bedre Objektorientert Design teknikker.