“Conocimientos Programación>Programación Java

Cómo cifrar un archivo grande en Java

2012/4/27
Si necesita cifrar archivos pequeños en Java , es suficiente para cargar todos los datos en la memoria, cifrar y volver a escribirlos . Sin embargo , para archivos más grandes que pueden superar el tamaño de la memoria del ordenador , este enfoque será demasiado lento. Usted en cambio necesita para pasar los datos directamente en una corriente del expediente al archivo recién cifrada. Cosas que necesitará
Netbeans
Ver Más instrucciones
1

Crear un archivo de texto en blanco denominado " Encrypter.java " y pegue el siguiente código inicial en él:

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

Encrypter clase pública {

public static void encrypt ( SecretKey clave , en InputStream , OutputStream fuera) { }

void (String [] args públicas estáticas ) { } }

Esto tiene dos métodos: un método principal que tendrá dos argumentos - el archivo de origen y el archivo de destino - y un método de cifrado que tiene dos corrientes y de cifrado
2

Pega el siguiente dentro de los corchetes del método principal :
archivo

INFILE . = new archivo ( args [ 0 ] ) ; archivo OUTFILE = new archivo ( args [ 1 ] ) ;

try { SecretKey key = KeyGenerator.getInstance ( " DES ") GenerateKey ( ) . Encrypter.encrypt (clave , nuevo FileInputStream ( INFILE ) , nuevo FileOutputStream ( OUTFILE )); } catch ( FileNotFoundException e) { } catch ( NoSuchAlgorithmException e) { }

Esto crea una clave secreta para el cifrado de datos estándar (DES ) método de cifrado y de inmediato llama al método cifrar, junto con la clave y una corriente de los archivos de origen y de destino
3

Pega el siguiente en el método de cifrado : .
< p > 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 , llave, paramSpec ) ;

a = new CipherOutputStream ( a , c ), int count = 0 , byte [ ] buffer = nuevo octeto [1024 ] ;

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

Esto establece un vector de inicialización a utilizar para el algoritmo de cifrado DES . Los datos se leen desde el InputStream , encriptada y escrita a 1024 bytes a la vez, permitiendo que incluso los archivos de varios gigabytes para ser eficiente cifrado sin sobrecargar la memoria.
4

Guarde su trabajo . Si ha utilizado un entorno de desarrollo integrado Java ( IDE ) , puede compilar haciendo clic en el botón " Build " . De lo contrario, tendrá que ejecutar el siguiente comando en el símbolo del sistema para compilarlo :

javac Encrypter.java
5

Para cifrar un archivo, escriba el comando siguiente en un símbolo del del sistema: .

java Encrypt sourceFile destinationFile

Reemplazar " sourceFile " y " destinationFile " con los nombres de los archivos necesarios

Programación Java
Cómo cerrar todas las ventanas abiertas del navegador con Java
Cómo crear Juegos Java
Cómo utilizar else if en Java
Cómo construir un archivo JAR con Build.xml
Cómo cambiar el fondo de un campo de texto usando Jigloo y Java Swing
Cómo escribir un Java Game 3D
Cómo hacer una instalación de Java
Cómo mostrar porcentajes en Java
Conocimientos Informáticos © http://www.ordenador.online