base64.decode en Java

Mohammad Irfan 12 octobre 2023
  1. Méthodes d’encodage et de décodage de la classe Base64
  2. Encodage Base64 en Java
  3. Décodage Base64 en Java
  4. Encodage et décodage à l’aide de la bibliothèque de codecs Apache Commons en Java
  5. Encodage et décodage d’URL en Java
  6. Encodage et décodage Mime en Java
base64.decode en Java

Ce tutoriel présente ce qu’est base64.decode en Java, et comment l’utiliser pour décoder les données encodées en Java.

Java a ajouté une nouvelle classe, Base64, dans sa version Java 8. Cette classe a plusieurs classes imbriquées telles que l’encodeur et le décodeur qui peuvent être utilisées pour coder et décoder des données. Il permet plusieurs fonctionnalités codées telles que le codage de base, le codage URL, le codage MIME et la prise en charge du décodage pour chacune également. Vous pouvez voir ci-dessous les méthodes pour chaque objectif.

Méthodes d’encodage et de décodage de la 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()

Dans cet article, nous allons apprendre à coder et décoder les types de codage de base et autres. Commençons par quelques exemples.

Encodage Base64 en Java

Ceci est un exemple d’encodage de base. Java fournit la méthode getEncoder() pour encoder les données. Voir l’exemple ci-dessous.

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

Production:

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

Décodage Base64 en Java

Ici, nous avons utilisé la méthode getDecoder() pour décoder les données encodées. Cette méthode renvoie le résultat en octets. Donc, pour vérifier, nous avons utilisé un constructeur String pour récupérer les données dans 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);
  }
}

Production:

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

Encodage et décodage à l’aide de la bibliothèque de codecs Apache Commons en Java

C’est une autre solution pour coder et décoder des données en Java. Ici, nous utilisons la librairie codec et sa classe Base64. Il fournit la méthode encodeBase64() qui renvoie une chaîne encodée qui peut être décodée davantage en utilisant la méthode decodeBase64(). Voir l’exemple ci-dessous.

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

Production:

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

Encodage et décodage d’URL en Java

Comme nous l’avons indiqué au début, Java Base64 peut également être utilisé pour coder et décoder des URL. Ainsi, dans cet exemple, nous avons utilisé la méthode getUrlEncoder() pour l’encodage et la méthode getUrlDecoder() pour décoder l’URL. Voir l’exemple ci-dessous.

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

Production:

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

Encodage et décodage Mime en Java

Pour coder les données mime, Java fournit la méthode getMimeEncoder() qui renvoie un octet codé et pour décoder cette méthode Java fournit la méthode getMimeDecoder(). Voir l’exemple ci-dessous.

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

Production:

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