Introducción
En este laboratorio, aprenderemos cómo codificar y decodificar datos Base64 en Java utilizando la clase java.util.Base64
y la biblioteca Apache Commons.
💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí
En este laboratorio, aprenderemos cómo codificar y decodificar datos Base64 en Java utilizando la clase java.util.Base64
y la biblioteca Apache Commons.
En este paso, crearás un nuevo archivo Java. Abre la terminal y ejecuta el siguiente comando para crear un nuevo archivo Java:
touch ~/project/Base64Encoding.java
Este comando creará un nuevo archivo llamado Base64Encoding.java
dentro del directorio ~/project
. Puedes usar cualquier nombre preferido, pero asegúrate de que termine con .java
.
En este paso, aprenderemos sobre la codificación y decodificación básicas.
getEncoder()
que devuelve un simple Base64.Encoder.encodeToString()
para codificar la cadena.Para decodificar una cadena codificada, usaremos el Base64.Decoder devuelto por el método getDecoder()
.
decode()
del decodificador.Utiliza el bloque de código siguiente para codificar y decodificar una cadena:
import java.util.Base64;
public class Base64Encoding {
public static void main(String[] args) {
String strToEncode = "Hello World";
byte[] bytesToEncode = strToEncode.getBytes(); // convertir la cadena a un arreglo de bytes
// Codificación
String encodedStr = Base64.getEncoder().encodeToString(bytesToEncode);
System.out.println("Cadena codificada: " + encodedStr);
// Decodificación
byte[] decodedByteArr = Base64.getDecoder().decode(encodedStr);
String decodedStr = new String(decodedByteArr);
System.out.println("Cadena decodificada: " + decodedStr);
}
}
Ejecuta el siguiente comando en la terminal para compilar y ejecutar el código:
javac Base64Encoding.java && java Base64Encoding
En el paso anterior, vimos que la codificación agrega caracteres de relleno (=) al final de la cadena codificada. En este paso, aprenderemos cómo codificar sin caracteres de relleno.
Utiliza el siguiente bloque de código para codificar la cadena sin relleno:
import java.util.Base64;
public class Base64Encoding {
public static void main(String[] args) {
String strToEncode = "Java";
byte[] bytesToEncode = strToEncode.getBytes(); // convertir la cadena a un arreglo de bytes
// Codificación sin relleno
String encodedStr = Base64.getEncoder().withoutPadding().encodeToString(bytesToEncode);
System.out.println("Cadena codificada: " + encodedStr);
}
}
Ejecuta el siguiente comando en la terminal para compilar y ejecutar el código:
javac Base64Encoding.java && java Base64Encoding
En este paso, aprenderemos sobre la codificación y decodificación seguras para URL y nombres de archivo.
La clase Base64 maneja la codificación y decodificación de URL mediante el uso del Alfabeto Base64 seguro para URL y nombres de archivo.
getUrlEncoder()
para obtener un codificador Base64 para URL.encodeToString()
como lo hicimos en la sección anterior.Del mismo modo, tenemos un método getUrlDecoder()
que devuelve un decodificador para URL.
decode()
con este decodificador para la decodificación.Utiliza el bloque de código siguiente para codificar y decodificar una URL:
import java.util.Base64;
public class Base64Encoding {
public static void main(String[] args) {
String urlToEncode = "https://go.java/?intcmp=gojava-banner-java-com";
// Codificación
String encodedUrl = Base64.getUrlEncoder().encodeToString(urlToEncode.getBytes());
System.out.println("URL codificada: " + encodedUrl);
// Decodificación
byte[] decodedUrlBytes = Base64.getUrlDecoder().decode(encodedUrl);
String decodedUrl = new String(decodedUrlBytes);
System.out.print("URL decodificada: " + decodedUrl);
}
}
Ejecuta el siguiente comando en la terminal para compilar y ejecutar el código:
javac Base64Encoding.java && java Base64Encoding
En este paso, aprenderemos sobre la codificación y decodificación MIME.
Podemos usar los métodos getMimeEncoder()
y encodeToString()
para la codificación.
Para decodificar, usaremos el método getMimeDecoder()
para obtener un decodificador y luego usaremos el método decode()
.
Utiliza el siguiente bloque de código para codificar y decodificar datos MIME:
import java.util.Base64;
import java.util.UUID;
public class Base64Encoding {
public static void main(String[] args) {
// Creando una entrada MIME para codificar
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 10; ++i) {
sb.append(UUID.randomUUID().toString());
}
// Codificación
byte[] bytes = sb.toString().getBytes();
String mimeEncodedStr = Base64.getMimeEncoder().encodeToString(bytes);
System.out.println("Cadena codificada: " + mimeEncodedStr);
// Decodificación
byte[] mimeDecodedBytes = Base64.getMimeDecoder().decode(mimeEncodedStr);
String mimeDecodedStr = new String(mimeDecodedBytes);
}
}
Ejecuta el siguiente comando en la terminal para compilar y ejecutar el código:
javac Base64Encoding.java && java Base64Encoding
En este paso, aprenderemos cómo usar la biblioteca Apache Commons para codificar y decodificar datos Base64.
La biblioteca Apache Commons proporciona una clase Base64 dentro de su paquete org.apache.commons.codec.binary
.
encode()
y decode()
en los bytes de la cadena para realizar la codificación y la decodificación.Utiliza el siguiente bloque de código para codificar y decodificar una cadena utilizando la clase Base64 de Apache Commons:
import org.apache.commons.codec.binary.Base64;
public class Base64Encoding {
public static void main(String[] args) {
Base64 base64 = new Base64();
// Codificación
String strToEncode = "Hello World";
byte[] encodedBytes = base64.encode(strToEncode.getBytes());
String encodedStr = new String(encodedBytes);
System.out.println("Cadena codificada: " + encodedStr);
// Decodificación
byte[] decodedByteArr = base64.decode(encodedStr.getBytes());
String decodedStr = new String(decodedByteArr);
System.out.println("Cadena decodificada: " + decodedStr);
// Acceder directamente a la API utilizando los métodos estáticos encodeBase64() y decodeBase64()
String strToEncode2 = "Hello World";
String encodedStr2 = new String(Base64.encodeBase64(strToEncode.getBytes()));
String decodedStr2 = new String(Base64.decodeBase64(encodedStr.getBytes()));
}
}
Ejecuta el siguiente comando en la terminal para compilar y ejecutar el código:
javac -cp commons-codec-1.15.jar Base64Encoding.java && java -cp commons-codec-1.15.jar:. Base64Encoding
Nota: Para ejecutar este código, debes descargar e importar el archivo .jar
de la biblioteca Apache Commons Codec en el classpath. En el comando anterior, agregamos -cp commons-codec-1.15.jar
para especificar el classpath de la biblioteca.
En este laboratorio, aprendimos cómo codificar y decodificar datos Base64 en Java utilizando la clase java.util.Base64
y la biblioteca Apache Commons. Cubrimos tres diferentes esquemas de codificación y decodificación Base64: Básico, URL y seguro para nombres de archivo, y MIME.