Algunos servicios hoy en día estan comenzando a utilizar mucho la transferencia de información por base64, esto para impedir la transferencia de texto plano, la transferencia errónea de caracteres especiales en un request o bien para transferir un texto previamente encriptado, que utilice caracteres ASCII o que no esten en UTF-8.

Debemos tener en cuenta que base64 no es un tipo de cifrado, ya que no utiliza claves o certificados de seguridad que permitan evitar un descifrado del mismo.

Lo primero que debemos hacer es crear una clase java, le llamaré Conversion, en ella vamos a crear 2 métodos:

Decode, lo usaremos para decodificar el texto en base64:

public String decode(String s) throws UnsupportedEncodingException {
String respuesta = "error";
try {
respuesta = new String(Base64.getDecoder().decode(s.getBytes("UTF8")),"UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return respuesta;
}

Y Encode, lo usaremos para codificar el texto a base64:

public String encode(String s) {
String respuesta = "error";
try {
respuesta = new String(Base64.getEncoder().encode(s.getBytes("UTF8")),"UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return respuesta;
}

Luego de ello, crearemos nuestra clase main y probaremos su funcionamiento:

public static void main(String arg[]){
Conversion res = new Conversion();
String base64 = "" ;
base64 = res.encode("Hola mundo!");

//Encriptamos nuestro Hola mundo!
System.out.println(base64 + "\n");

//Desciframos nuestro string en base64
System.out.println(res.decode(base64));

}

Compilamos nuestra clase y probamos su funcionamiento:

De esta manera podemos codificar y decodificar a base64 en java.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.