Está en la página 1de 2

Universidad Técnica de Ambato

FISEI
Nombre: Daniel Vallejo.

Módulo: Seguridad Informática.

Técnica para cifrar y descifrar mensajes (AES)

Este algoritmo usa la misma clave para encriptar y para desencriptar. Es adecuado para encriptar
textos largos. La clave tiene que tener una longitud fija en bits (en bytes), en nuestro caso serán
128 bits (o 16 bytes).

Código.

// Generamos una clave de 128 bits adecuada para AES


KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
keyGenerator.init(128);
Key key = keyGenerator.generateKey();

// Alternativamente, una clave que queramos que tenga al menos 16 bytes


// y nos quedamos con los bytes 0 a 15
key = new SecretKeySpec("una clave de 16 bytes".getBytes(), 0, 16, "AES");

// Ver como se puede guardar esta clave en un fichero y recuperarla


// posteriormente en la clase RSAAsymetricCrypto.java

// Texto a encriptar
String texto = "Universidad Tecnica de Ambato: Daniel Vallejo";
System.out.printf("Texto a encriptar: %s",texto);

// Se obtiene un cifrador AES


Cipher aes = Cipher.getInstance("AES/ECB/PKCS5Padding");

// Se inicializa para encriptacion y se encripta el texto,


// que debemos pasar como bytes.
aes.init(Cipher.ENCRYPT_MODE, key);
byte[] encriptado = aes.doFinal(texto.getBytes());

// Se escribe byte a byte en hexadecimal el texto


// encriptado para ver su pinta.

System.out.println("\n\t\t***********************Encripta***********************");
System.out.println();
for (byte b : encriptado) {
System.out.print(Integer.toHexString(0xFF & b));
}
System.out.println();

System.out.println("\t***********************************************************
*****");
System.out.println();

// Se iniciliza el cifrador para desencriptar, con la


// misma clave y se desencripta

System.out.println("\t\t***********************Desencripta***********************");
aes.init(Cipher.DECRYPT_MODE, key);
byte[] desencriptado = aes.doFinal(encriptado);

// Texto obtenido, igual al original.


System.out.println(new String(desencriptado));

Resultado.

También podría gustarte