base64.decode em Java

Mohammad Irfan 12 outubro 2023
  1. Métodos de codificação e decodificação da classe Base64
  2. Codificação Base64 em Java
  3. Decodificação Base64 em Java
  4. Codificação e decodificação usando Apache Commons Codec Library em Java
  5. Codificação e decodificação de URL em Java
  6. Codificação e decodificação Mime em Java
base64.decode 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