Get it on Google Play
Tu partner Freelance para tus proyectos IT

Encriptar y desencriptar datos en Java

15-05-2019
Java Encryption

Java Encryption

Dominar la encriptación y desencriptación de datos se ha vuelto crucial para cualquier desarrollo hoy en día, y es que la seguridad de los sistemas de información es crítico tanto a nivel empresarial como a nivel personal. No puede haber proyecto web, de ciencia de datos, etc. que no certifique la seguridad(O, por lo menos, un mínimo de seguridad).

Con estas dos simple funciones seremos capaces de encriptar y desencriptar datos para almacenar o enviar información en Java:

private static String  ENCRYPT_KEY="clave-compartida-no-reveloar-nunca";

private static String encript(String text) throws Exception {	
	Key aesKey = new SecretKeySpec(ENCRYPT_KEY.getBytes(), "AES");

	Cipher cipher = Cipher.getInstance("AES");
	cipher.init(Cipher.ENCRYPT_MODE, aesKey);

	byte[] encrypted = cipher.doFinal(text.getBytes());
		
	return Base64.encodeBytes(encrypted);
	}

private static String decrypt(String encrypted) throws Exception {
	byte[] encryptedBytes=Base64.decode( encrypted.replace("\n", "") );
		
	Key aesKey = new SecretKeySpec(ENCRYPT_KEY.getBytes(), "AES");

	Cipher cipher = Cipher.getInstance("AES");
	cipher.init(Cipher.DECRYPT_MODE, aesKey);

	String decrypted = new String(cipher.doFinal(encryptedBytes));
        
	return decrypted;
	}

Fijaros que lo que hace ‘Cipher’ es encriptar y desencriptar arrays de bytes aunque yo después lo transformo a cadenas de texto codificadas en Base64, por si os interesa hacer alguna modificación.

Si te ha servido, por favor comparte
 

Comments

One Response to “Encriptar y desencriptar datos en Java”
  1. FRANCISCO says:

    MUY BUEN APORTE!
    Me daba un error al remplazar ENCRYPT_KEY=”clave-compartida-no-reveloar-nunca”.
    Estaba proporcionando mal los bytes
    AES solo admite tamaños de clave de 16, 24 o 32 bytes. Debe proporcionar exactamente esa cantidad o derivar la clave de lo que escribe.

Leave a Reply