Weblogs Código

RecorteX

73 usuarios y 244 recortes de código
Usuario

Contraseña
Crear cuenta
asp csharp css fechas Flash html imagenes java javascript linux mysql oracle php sql SQLServer url vbnet web xhtml xml
Top Usuarios
fjmp76 (43)
albin (31)
josuebasurto (31)
juanjo (30)
pedrocaro (9)
stanz (8)
AndiXTRM (7)
Joserra (7)
miiglesi (6)
aplyca (5)
Top Etiquetas
php (38)
vbnet (28)
csharp (26)
javascript (26)
html (25)
java (24)
sql (18)
xml (13)
mysql (13)
css (10)
Flash (7)
imagenes (7)
xhtml (7)
linux (6)
asp (6)
fechas (6)
web (5)
SQLServer (5)
oracle (5)
url (5)

Ejemplo de Algoritmo Simétrico DES para des/encriptacion JAVA

Escribe aquí el texto

import java.security.*;

import   javax.crypto.*;
import   javax.crypto.interfaces.*;
import   javax.crypto.spec.*;

import java.io.*;

public class EjemploDES  {
   /*  Ejemplo de uso de funciones de resumen Hash
    *    carga el fichero que recibe como parametro y genera el resumen
    */   
   public static void main (String[] args) throws Exception {	
      // Comprobar argumentos
      if (args.length !=1) {
	 mensajeAyuda();
	 System.exit(1); 
      }
      
      /* Cargar "provider" (sólo si no se usa el que viene por defecto) */
      // Security.addProvider(new BouncyCastleProvider());  // Usa provider BC
      // 
      /* PASO 1: Crear e inicializar clave */
      KeyGenerator keyGen = KeyGenerator.getInstance("DES");
      keyGen.init(56);
      SecretKey clave = keyGen.generateKey();
      
      System.out.println("CLAVE:" + new String(clave.getEncoded()) + "\n");
      
      
      /* PASO 2: Crear cifrador */
      Cipher cifrador= Cipher.getInstance("DES/ECB/PKCS5Padding");
           // Algoritmo DES
           // Modo : ECB (Electronic Code Book)
           // Relleno : PKCS5Padding
	   // 
      /* PASO 3a: Inicializar cifrador en modo CIFRADO */
      cifrador.init(Cipher.ENCRYPT_MODE, clave);
      
      /* Leer fichero de 1k en 1k y pasar fragmentos leidos al cifrador */
      byte[] bufferPlano = new byte[1000];
      byte[] bufferCifrado;
      
      String textoCifradoTotal = new String();
      FileInputStream in = new FileInputStream(args[0]);
      int bytesLeidos = in.read(bufferPlano,0, 1000);
      while(bytesLeidos != -1) {  // Mientras no se llegue al final del fichero
	 bufferCifrado = cifrador.update(bufferPlano, 0 , bytesLeidos);  // Pasa texto claro leido al cifrador
	 textoCifradoTotal = textoCifradoTotal + new String(bufferCifrado); // Acumular texto cifrado
	 bytesLeidos = in.read(bufferPlano,0, 1000);
      } 
      in.close();
      
      bufferCifrado = cifrador.doFinal(); // Completar cifrado (puede devolver texto)
      textoCifradoTotal = textoCifradoTotal + new String(bufferCifrado);

      
      System.out.println("--------------- TEXTO CIFRADO ---------------");
      System.out.println(textoCifradoTotal);   // Mostrar texto cifrado
      System.out.println("---------------------------------------------");
      
      System.out.println("--------------- TEXTO DESCIFRADO -------------");
      /* PASO 3b: Poner cifrador en modo DESCIFRADO */
      cifrador.init(Cipher.DECRYPT_MODE, clave);
      byte[] textoDescifrado = cifrador.update(textoCifradoTotal.getBytes()); // Pasar texto al descifrador
      System.out.print( new String(textoDescifrado) );
      textoDescifrado = cifrador.doFinal(); // Completar descifrado (puede devolver texto)
      System.out.print( new String(textoDescifrado) );
      System.out.println("----------------------------------------------");
   }
  
   public static void mensajeAyuda() {
      System.out.println("Ejemplo cifrado DES");
      System.out.println("\tSintaxis:   java EjemploDES fichero");
      System.out.println();	
   }
   
}
Identifícate para dejar un comentario.
Proyecto: Juanjo Navarro, 2006 - Diseño: Albin