base64.decode em Java
- Métodos de codificação e decodificação da classe Base64
- Codificação Base64 em Java
- Decodificação Base64 em Java
- Codificação e decodificação usando Apache Commons Codec Library em Java
- Codificação e decodificação de URL em Java
- Codificação e decodificação Mime em Java
Este tutorial apresenta o que é base64.decode
em Java e como usá-lo para decodificar os dados codificados em Java.
Java adicionou uma nova classe, Base64
, em sua versão Java 8. Essa classe possui várias classes aninhadas, como codificador e decodificador, que podem ser usados para codificar e decodificar dados. Ele permite vários recursos codificados, como codificação básica, codificação de URL, codificação MIME e suporte de decodificação para cada um. Você pode ver abaixo os métodos para cada finalidade.
Métodos de codificação e decodificação da classe Base64
// Basic Encoding Decoding
public static Base64.Decoder getDecoder() public static Base64
.Encoder getEncoder()
// Url Encoding Decoding
public static Base64.Decoder getUrlDecoder() public static Base64
.Encoder getUrlEncoder()
// Mime Encoding Decoding
public static Base64.Decoder getMimeDecoder() public static Base64.Encoder getMimeEncoder()
Neste artigo, aprenderemos a codificar e decodificar tipos básicos de codificação e outros. Vamos começar com alguns exemplos.
Codificação Base64 em Java
Este é um exemplo básico de codificação. Java fornece o método getEncoder()
para codificar os dados. Veja o exemplo abaixo.
import java.io.UnsupportedEncodingException;
import java.util.Base64;
import java.util.Base64.Encoder;
public class SimpleTesting {
public static void main(String[] args) throws UnsupportedEncodingException {
String msg = "This is confidential";
System.out.println("Message before encoding: " + msg);
byte[] bytes = msg.getBytes("UTF-8");
Encoder encoder = Base64.getEncoder();
String encoded = encoder.encodeToString(bytes);
System.out.println("Message after encoding: " + encoded);
}
}
Resultado:
Message before encoding : This is confidential Message after encoding
: VGhpcyBpcyBjb25maWRlbnRpYWw =
Decodificação Base64 em Java
Aqui, usamos o método getDecoder()
para decodificar os dados codificados. Este método retorna o resultado em bytes. Portanto, para verificar, usamos um construtor String
para obter os dados em String de volta.
import java.io.UnsupportedEncodingException;
import java.util.Base64;
import java.util.Base64.Encoder;
public class SimpleTesting {
public static void main(String[] args) throws UnsupportedEncodingException {
String msg = "This is confidential";
System.out.println("Message before encoding: " + msg);
byte[] bytes = msg.getBytes("UTF-8");
Encoder encoder = Base64.getEncoder();
String encoded = encoder.encodeToString(bytes);
System.out.println("Message after encoding: " + encoded);
byte[] decoded = Base64.getDecoder().decode(encoded);
String decodedMsg = new String(decoded);
System.out.println("Decoded Message " + decodedMsg);
}
}
Resultado:
Message before encoding : This is confidential Message after encoding
: VGhpcyBpcyBjb25maWRlbnRpYWw = Decoded Message This is confidential
Codificação e decodificação usando Apache Commons Codec Library em Java
Esta é outra solução para codificar e decodificar dados em Java. Aqui, estamos usando a biblioteca de codecs e sua classe Base64
. Ele fornece o método encodeBase64()
que retorna uma string codificada que pode ser decodificada posteriormente usando o método decodeBase64()
. Veja o exemplo abaixo.
import java.io.UnsupportedEncodingException;
import org.apache.commons.codec.binary.Base64;
public class SimpleTesting {
public static void main(String[] args) throws UnsupportedEncodingException {
String msg = "This is confidential";
System.out.println("Message before encoding: " + msg);
byte[] bytes = msg.getBytes("UTF-8");
String encoding = new String(Base64.encodeBase64(bytes));
System.out.println("---------After Encoding-----------");
System.out.println(encoding);
// Decoding
String decoding = new String(Base64.decodeBase64(encoding));
System.out.println("---------After Decoding----------");
System.out.println(decoding);
}
}
Resultado:
Message before encoding
: This is confidential-- -- -- -- -After Encoding-- -- -- -- -- -VGhpcyBpcyBjb25maWRlbnRpYWw =
-- -- -- -- -After Decoding-- -- -- -- --This is confidential
Codificação e decodificação de URL em Java
Como afirmamos no início, Java Base64 também pode ser usado para codificar e decodificar URLs. Portanto, neste exemplo, usamos o método getUrlEncoder()
para codificação e o método getUrlDecoder()
para decodificar a URL. Veja o exemplo abaixo.
import java.io.UnsupportedEncodingException;
import java.util.Base64;
import java.util.Base64.Encoder;
public class SimpleTesting {
public static void main(String[] args) throws UnsupportedEncodingException {
String url = "https://www.delftstack.com/";
System.out.println("Message before encoding: " + url);
byte[] bytes = url.getBytes("UTF-8");
Encoder encoder = Base64.getUrlEncoder();
String encoded = encoder.encodeToString(bytes);
System.out.println("Message after encoding: " + encoded);
// Decoding
String decoding = new String(Base64.getUrlDecoder().decode(encoded));
System.out.println("---------After Decoding----------");
System.out.println(decoding);
}
}
Resultado:
Message before encoding : https : // www.delftstack.com/
Message after encoding
: aHR0cHM6Ly93d3cuZGVsZnRzdGFjay5jb20v-- -- -- -- -After Decoding-- -- -- -- --https
: // www.delftstack.com/
Codificação e decodificação Mime em Java
Para codificar dados mime, o Java fornece o método getMimeEncoder()
que retorna bytes codificados e para decodificar que o Java fornece o método getMimeDecoder()
. Veja o exemplo abaixo.
import java.io.UnsupportedEncodingException;
import java.util.Base64;
import java.util.Base64.Encoder;
public class SimpleTesting {
public static void main(String[] args) throws UnsupportedEncodingException {
String msg = "This is \n confidential \n file";
System.out.println("Message before encoding: " + msg);
byte[] bytes = msg.getBytes("UTF-8");
Encoder encoder = Base64.getMimeEncoder();
String encoded = encoder.encodeToString(bytes);
System.out.println("Message after encoding: " + encoded);
// Decoding
String decoding = new String(Base64.getMimeDecoder().decode(encoded));
System.out.println("---------After Decoding----------");
System.out.println(decoding);
}
}
Resultado:
Message before encoding : This is confidential file Message after encoding
: VGhpcyBpcyAKIGNvbmZpZGVudGlhbCAKIGZpbGU =
-- -- -- -- -After Decoding-- -- -- -- --This is confidential file