base64.decode en Java

Mohammad Irfan 12 octubre 2023
  1. Métodos de codificación y decodificación de la clase Base64
  2. Codificación Base64 en Java
  3. Decodificación Base64 en Java
  4. Codificación y decodificación mediante la biblioteca de códecs Apache Commons en Java
  5. Codificación y decodificación de URL en Java
  6. Codificación y decodificación de Mime en Java
base64.decode en Java

Este tutorial presenta qué es base64.decode en Java y cómo usarlo para decodificar los datos codificados en Java.

Java agregó una nueva clase, Base64, en su versión Java 8. Esta clase tiene varias clases anidadas, como codificador y decodificador, que se pueden usar para codificar y decodificar datos. También permite varias funciones codificadas, como codificación básica, codificación de URL, codificación MIME y soporte de decodificación para cada una. Puede ver a continuación los métodos para cada propósito.

Métodos de codificación y decodificación de la clase 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()

En este artículo, aprenderemos a codificar y decodificar codificación básica y de otro tipo. Comencemos con algunos ejemplos.

Codificación Base64 en Java

Este es un ejemplo de codificación básico. Java proporciona el método getEncoder() para codificar los datos. Vea el ejemplo a continuación.

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);
  }
}

Producción :

Message  before encoding: This is confidential
Message after encoding: VGhpcyBpcyBjb25maWRlbnRpYWw=

Decodificación Base64 en Java

Aquí, usamos el método getDecoder() para decodificar los datos codificados. Este método devuelve el resultado en bytes. Entonces, para verificar, usamos un constructor String para devolver los datos a String.

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);
  }
}

Producción :

Message before encoding: This is confidential
Message after encoding: VGhpcyBpcyBjb25maWRlbnRpYWw=
Decoded Message This is confidential

Codificación y decodificación mediante la biblioteca de códecs Apache Commons en Java

Esta es otra solución para codificar y decodificar datos en Java. Aquí, estamos usando la biblioteca de códecs y su clase Base64. Proporciona el método encodeBase64() que devuelve una cadena codificada que se puede decodificar aún más mediante el método decodeBase64(). Vea el ejemplo a continuación.

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);
  }
}

Producción :

Message  before encoding: This is confidential
---------After Encoding-----------
VGhpcyBpcyBjb25maWRlbnRpYWw=
---------After Decoding----------
This is confidential

Codificación y decodificación de URL en Java

Como dijimos al principio, Java Base64 también se puede utilizar para codificar y decodificar URL. Entonces, en este ejemplo, usamos el método getUrlEncoder() para codificar y el método getUrlDecoder() para decodificar la URL. Vea el ejemplo a continuación.

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);
  }
}

Producción :

Message  before encoding: https://www.delftstack.com/
Message after encoding: aHR0cHM6Ly93d3cuZGVsZnRzdGFjay5jb20v
---------After Decoding----------
https://www.delftstack.com/

Codificación y decodificación de Mime en Java

Para codificar datos mime, Java proporciona el método getMimeEncoder() que devuelve bytes codificados y para decodificar que Java proporciona el método getMimeDecoder(). Vea el ejemplo a continuación.

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);
  }
}

Producción :

Message  before encoding: This is 
 confidential 
 file
Message after encoding: VGhpcyBpcyAKIGNvbmZpZGVudGlhbCAKIGZpbGU=
---------After Decoding----------
This is 
 confidential 
 file