Tema: encriptar
Ver Mensaje Individual
  #2 (permalink)  
Antiguo 28/06/2005, 14:42
Willie
 
Fecha de Ingreso: junio-2005
Mensajes: 286
Antigüedad: 18 años, 10 meses
Puntos: 2
Para encriptar:

import java.security.*;
import javax.crypto.*;
import javax.crypto.spec.*;

String algoritm,mode,padding;
algorithm = "DES"; //algoritmo anticuado
//hay otros algoritmos (DSA, Blowfish, etc)
mode = "CBC"; //modo (chain-backwards o algo asi, no me //recuerdo) del algoritmo
padding = "PKCS5Padding"; //el padding, debido a cuestiones del //bloque de bytes que usa el algoritmo....detalles :)

//generar la llave (secreta) DES
KeyGenerator desGen = KeyGenerator.getInstance("DES");
SecretKey desKey = desGen.generateKey();
SecretKeyFactory keyFac = SecretKeyFactory.getInstance("DES");
DESKeySpec desSpec = (DESKeySpec)keyFac.getKeySpec(desKey, javax.crypto.spec.DESKeySpec.class);
SecretKey key = keyFac.generateSecret(desSpec);

//Ahora encriptar
Cipher cipher = Cipher.getInstance(algorithm +"/" + mode + "/" + padding);

//decirle que queremos encriptar (aqui tambien le dirias que queres de-encriptar
cipher.init(Cipher.ENCRYPT_MODE, key);

//los parametros que usaste para encriptar (llave!), los cuales podrias guardar //y luego abrir para de-encriptar mas tarde

AlgorithmParameters algParam = cipher.getParameters();
encrypt(path,cipher);

//y para encriptar
byte[] ciphertext = cipher.doFinal(plaintext);

//donde plaintext seria tu campo en tu caso,

para deencriptar le das :

cipher.init(Cipher.DECRYPT_MODE, key);
byte[] plaintext1 = cipher.doFinal(ciphertext);

Dependiendo del algoritmo, los parametros de los metodos pueden variar

Willie