
28/06/2005, 14:42
|
| | Fecha de Ingreso: junio-2005
Mensajes: 286
Antigüedad: 19 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 |