Red de conocimiento informático - Material del sitio web - Cómo cifrar y descifrar datos utilizando la API Crypto de Bouncy Castle

Cómo cifrar y descifrar datos utilizando la API Crypto de Bouncy Castle

importar org.bouncycastle.crypto.*;

importar org.bouncycastle.crypto.engines.*;

importar org.bouncycastle.crypto.modes.*;

import org.bouncycastle.crypto.params.*;

// Uso de Bouncy Castle

// Un ejemplo simple del uso de la API de cifrado para realizar cifrado DES en datos arbitrarios

public class Encryptor {

cifrado BufferedBlockCipher privado;

clave KeyParameter privada;

// Inicializa el motor de cifrado.

// La longitud de la clave de matriz debe ser de al menos 8 bytes.

cifrado público (byte[] clave){

/*

cifrado = nuevo QuiltBlockCipher(

nuevo CBCBlockCipher(

nuevo DESEngine() ));

*/

cifrado = nuevo QuiltBlockCipher(

nuevo CBCBlockCipher(

nuevo BlowfishEngine() ));

this.key = new KeyParameter( key );

}

// Inicializa el motor de cifrado.

// La longitud de la clave de cadena debe ser de al menos 8 bytes.

cifrador público( clave de cadena ){

this( key.getBytes() );

}

// Realiza un trabajo específico de cifrar y descifrar cadenas

byte privado[] callCipher( byte[] datos )

lanza CryptoException {

int size =

cipher.getOutputSize( datos.

byte[] resultado = nuevo byte[ tamaño ]

int olen = cipher.processBytes( datos, 0,

datos.longitud, resultado, 0 );

olen += cipher.processBytes( datos, 0,

datos.longitud, resultado, 0 } <); /p>

// Cifre cualquier matriz de bytes y devuelva los datos cifrados como una matriz de bytes

byte[] público sincronizado encrypt( byte[] datos )

throws CryptoException {

if( data == null || data.length == 0 ){

devuelve nuevo byte[0];

}

cipher.init (verdadero, clave);