Introdução
Neste laboratório, aprenderemos como codificar e decodificar dados Base64 em Java usando a classe java.util.Base64 e a biblioteca Apache Commons.
Neste laboratório, aprenderemos como codificar e decodificar dados Base64 em Java usando a classe java.util.Base64 e a biblioteca Apache Commons.
Nesta etapa, você criará um novo arquivo Java. Abra o terminal e execute o seguinte comando para criar um novo arquivo Java:
touch ~/project/Base64Encoding.java
Este comando criará um novo arquivo chamado Base64Encoding.java dentro do diretório ~/project. Você pode usar qualquer nome preferido, mas certifique-se de que ele termine com .java.
Nesta etapa, aprenderemos sobre Codificação e Decodificação Básicas.
getEncoder() que retorna um simples Base64.Encoder.encodeToString() para codificar a string.Para decodificar uma string codificada, usaremos o Base64.Decoder retornado pelo método getDecoder().
decode() do decodificador.Use o bloco de código abaixo para codificar e decodificar uma string:
import java.util.Base64;
public class Base64Encoding {
public static void main(String[] args) {
String strToEncode = "Hello World";
byte[] bytesToEncode = strToEncode.getBytes(); // convert the string to a byte array
// Encoding
String encodedStr = Base64.getEncoder().encodeToString(bytesToEncode);
System.out.println("Encoded String: " + encodedStr);
// Decoding
byte[] decodedByteArr = Base64.getDecoder().decode(encodedStr);
String decodedStr = new String(decodedByteArr);
System.out.println("Decoded String: " + decodedStr);
}
}
Execute o seguinte comando no terminal para compilar e executar o código:
javac Base64Encoding.java && java Base64Encoding
Na etapa anterior, vimos que a codificação adiciona caracteres de padding ( = ) no final da string codificada. Nesta etapa, aprenderemos como codificar sem caracteres de padding.
Use o seguinte bloco de código para codificar a string sem padding:
import java.util.Base64;
public class Base64Encoding {
public static void main(String[] args) {
String strToEncode = "Java";
byte[] bytesToEncode = strToEncode.getBytes(); // convert the string to a byte array
// Encoding without padding
String encodedStr = Base64.getEncoder().withoutPadding().encodeToString(bytesToEncode);
System.out.println("Encoded String: " + encodedStr);
}
}
Execute o seguinte comando no terminal para compilar e executar o código:
javac Base64Encoding.java && java Base64Encoding
Nesta etapa, aprenderemos sobre Codificação e Decodificação Seguras para URL e Nome de Arquivo.
A classe Base64 lida com a codificação e decodificação de URL usando o Alfabeto Base64 seguro para URL e Nome de Arquivo.
getUrlEncoder() para obter um codificador Base64 para URL.encodeToString() como fizemos na seção anterior.Da mesma forma, temos um método getUrlDecoder() que retorna um decodificador de URL.
decode() com este decodificador para decodificação.Use o bloco de código abaixo para codificar e decodificar uma URL:
import java.util.Base64;
public class Base64Encoding {
public static void main(String[] args) {
String urlToEncode = "https://go.java/?intcmp=gojava-banner-java-com";
// Encoding
String encodedUrl = Base64.getUrlEncoder().encodeToString(urlToEncode.getBytes());
System.out.println("Encoded URL: " + encodedUrl);
// Decoding
byte[] decodedUrlBytes = Base64.getUrlDecoder().decode(encodedUrl);
String decodedUrl = new String(decodedUrlBytes);
System.out.print("Decoded URL: " + decodedUrl);
}
}
Execute o seguinte comando no terminal para compilar e executar o código:
javac Base64Encoding.java && java Base64Encoding
Nesta etapa, aprenderemos sobre Codificação e Decodificação MIME.
Podemos usar os métodos getMimeEncoder() e encodeToString() para a codificação.
Para decodificar, usaremos o método getMimeDecoder() para obter um decodificador e, em seguida, usaremos o método decode().
Use o seguinte bloco de código para codificar e decodificar dados MIME:
import java.util.Base64;
import java.util.UUID;
public class Base64Encoding {
public static void main(String[] args) {
// Creating a MIME input for encoding
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 10; ++i) {
sb.append(UUID.randomUUID().toString());
}
// Encoding
byte[] bytes = sb.toString().getBytes();
String mimeEncodedStr = Base64.getMimeEncoder().encodeToString(bytes);
System.out.println("Encoded String: " + mimeEncodedStr);
// Decoding
byte[] mimeDecodedBytes = Base64.getMimeDecoder().decode(mimeEncodedStr);
String mimeDecodedStr = new String(mimeDecodedBytes);
}
}
Execute o seguinte comando no terminal para compilar e executar o código:
javac Base64Encoding.java && java Base64Encoding
Nesta etapa, aprenderemos como usar a biblioteca Apache Commons para codificar e decodificar dados Base64.
A biblioteca Apache Commons fornece uma classe Base64 dentro de seu pacote org.apache.commons.codec.binary.
encode() e decode() nos bytes da string para realizar a codificação e decodificação.Use o seguinte bloco de código para codificar e decodificar uma string usando a classe Base64 da Apache Commons:
import org.apache.commons.codec.binary.Base64;
public class Base64Encoding {
public static void main(String[] args) {
Base64 base64 = new Base64();
// Encoding
String strToEncode = "Hello World";
byte[] encodedBytes = base64.encode(strToEncode.getBytes());
String encodedStr = new String(encodedBytes);
System.out.println("Encoded String: " + encodedStr);
// Decoding
byte[] decodedByteArr = base64.decode(encodedStr.getBytes());
String decodedStr = new String(decodedByteArr);
System.out.println("Decoded String: " + decodedStr);
// Directly access the API by using the static methods encodeBase64() and decodeBase64()
String strToEncode2 = "Hello World";
String encodedStr2 = new String(Base64.encodeBase64(strToEncode.getBytes()));
String decodedStr2 = new String(Base64.decodeBase64(encodedStr.getBytes()));
}
}
Execute o seguinte comando no terminal para compilar e executar o código:
javac -cp commons-codec-1.15.jar Base64Encoding.java && java -cp commons-codec-1.15.jar:. Base64Encoding
Nota: Para executar este código, você precisa baixar e importar o arquivo .jar da biblioteca Apache Commons Codec no classpath. No comando acima, adicionamos -cp commons-codec-1.15.jar para especificar o classpath da biblioteca.
Neste laboratório, aprendemos como codificar e decodificar dados Base64 em Java usando a classe java.util.Base64 e a biblioteca Apache Commons. Cobrimos três diferentes esquemas de codificação e decodificação Base64 - Basic, URL e Filename safe, e MIME.