Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Ayuda encriptación DES para VB6 y Java

Estas en el tema de Ayuda encriptación DES para VB6 y Java en el foro de Visual Basic clásico en Foros del Web. Hola!!! Mi problema es el siguiente necesito un método de encriptación de clave que me sirva tanto para una aplicación en Java y una en ...
  #1 (permalink)  
Antiguo 10/10/2007, 07:46
 
Fecha de Ingreso: febrero-2005
Mensajes: 2
Antigüedad: 19 años, 2 meses
Puntos: 0
Ayuda encriptación DES para VB6 y Java

Hola!!!

Mi problema es el siguiente necesito un método de encriptación de clave que me sirva tanto para una aplicación en Java y una en Visual Basic 6, hasta ahora estaba utilizando el método de encriptación DES en Java pero al tratar de reproducirlo en VB6 no he podido llegar al mismo resultado.

Gracias
Saludos.

Adjunto ejemplo en Java:



import javax.crypto.*;
import javax.crypto.spec.*;
import java.security.*;
import java.security.spec.*;
import sun.misc.*;
import java.io.*;


class DESEncryption {



/**
* Encripta un String utilizando el algoritmo DES
*
* @param clearText Texto en ckaro a encriptar
* @return texto encriptado en base 64
*/
public String encrypt (String clearText, Key key) {

String cipherTextB64 = "";

try {

// Necesitamos un cifrador
Cipher cipher = Cipher.getInstance("DES");

// Ciframos el texto en claro
cipher.init(Cipher.ENCRYPT_MODE, key);
byte cipherText[] = cipher.doFinal(clearText.getBytes());

// Codificamos el texto cifrado en base 64
BASE64Encoder base64encoder = new BASE64Encoder();
cipherTextB64 = base64encoder.encode(cipherText);

}
catch(NoSuchAlgorithmException nsae) {nsae.printStackTrace(); }
catch(InvalidKeyException ike) {ike.printStackTrace(); }
catch(NoSuchPaddingException nspe) {nspe.printStackTrace(); }
catch(IllegalBlockSizeException ibse) {ibse.printStackTrace(); }
catch(BadPaddingException bpe) {bpe.printStackTrace(); }

// Retornamos el texto cifrado en BASE64
return cipherTextB64;
}


/**
* Desencripta un testo cifrado en DES i codificado en base 64
*
* @param String cipherTextB64 Testo cifrado en DES y codificado en B64
* @return String Texto en claro
*/
public String decrypt (String cipherTextB64, Key key) {

String clearText = "";

try {

// Necesitamos un cifrador
Cipher cipher = Cipher.getInstance("DES");

// La clave está codificada en base 64
BASE64Decoder base64decoder = new BASE64Decoder();
byte cipherText[] = base64decoder.decodeBuffer(cipherTextB64);

// Ciframos el texto en claro
cipher.init(Cipher.DECRYPT_MODE, key);
byte bclearText[] = cipher.doFinal(cipherText);
clearText = new String(bclearText);

}
catch(NoSuchAlgorithmException nsae) {nsae.printStackTrace(); }
catch(NoSuchPaddingException nspe) {nspe.printStackTrace(); }
catch(InvalidKeyException ike) {ike.printStackTrace(); }
catch(IllegalBlockSizeException ibse) {ibse.printStackTrace(); }
catch(BadPaddingException bpe) {bpe.printStackTrace(); }
catch(IOException ioe) {ioe.printStackTrace(); }


return clearText;
}


/**
* Test de la clase
*/
public static void main (String args[]) {

// Clave de 64 bits, dado que DES utiliza 56 bits
byte[] secret = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08};

Key key = null;
try {
SecretKeyFactory skf = SecretKeyFactory.getInstance("DES");
key = skf.generateSecret(new DESKeySpec(secret));
}
catch(NoSuchAlgorithmException nsae) {nsae.printStackTrace(); }
catch(InvalidKeyException ike) {ike.printStackTrace(); }
catch(InvalidKeySpecException ikse) {ikse.printStackTrace(); }


DESEncryption desencryption = new DESEncryption();

String cipherText = desencryption.encrypt("Texto en claro", key);
System.out.println("Texto cifrado: " + cipherText);

String clearText = desencryption.decrypt(cipherText, key);
System.out.println("Texto en claro: " + clearText);
}

}
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:38.