Maison  >  Article  >  Java  >  Décodage Java Base64

Décodage Java Base64

王林
王林original
2024-08-30 16:10:45915parcourir

Dans Java Base64 Decode, Base64 est un schéma de codage dans un format binaire-texte qui désigne des données binaires, qui se présentent sous la forme d'un format de chaîne ASCII imprimable en se traduisant en représentations de base 64. Ces données Base64 peuvent être codées ou décodées en fonction des besoins de l’utilisateur et peuvent être réalisées à l’aide de certaines méthodes. Pour cela, l’importation du package java.util.Base64 est une étape essentielle. Le principal avantage du codage et du décodage de ces données est leur confidentialité ainsi que leur sécurité. Dans les sections suivantes, une description détaillée de chaque méthode sera abordée.

Commencez votre cours de développement de logiciels libres

Développement Web, langages de programmation, tests de logiciels et autres

Déclaration :

Ci-dessous la déclaration pour le décodage Base64 :

public static class Base64.Decoder extends Object

Comment fonctionne le décodage Base64 en Java ?

Voyons maintenant le fonctionnement du décodage Base64.

  • Tout d'abord, créez un objet encodeur et encodez la chaîne/les octets/le tampon d'octets en fonction des exigences. Cela peut être fait en utilisant la méthode Base64.getEncoder().
  • Une fois cela fait, créez un nouveau tableau pour les données encodées.
  • Pour décoder les données, créez un objet décodeur et créez un autre tableau pour stocker les données décodées.
  • Décoder les données codées à l'aide de la méthode decode().
  • Imprimez le résultat disponible dans le tableau du décodeur.

Méthodes de décodage Java Base64

Voici les différentes méthodes de décodage Java Base64.

Décodage Java Base64

1. public byte[] décoder ( byte[] arr )

  • Décode chaque octet du tableau d'entrée à l'aide du schéma de codage Base64.
  • Les résultats seront écrits dans un tableau d'octets nouvellement alloué.
  • Le tableau d'octets renvoyé aura une longueur similaire aux octets résultants.
  • Ici, arr est le tableau d'octets d'entrée qui doit être décodé.
  • Une IllegalArgumentException sera levée si le tableau d'octets d'entrée n'est pas dans un format Base64 valide.

Exemple :

Code :

import java.util.Base64;
public class Base64DecodeExample {
public static void main(String[] args) {
//  encoder
Base64.Encoder enc = Base64.getEncoder();
// Encode byte array
byte arr[] = {'a'};
byte arr2[] = enc.encode(arr);
System.out.println("Array encoded is: "+ arr2);
//  decoder
Base64.Decoder dec = Base64.getDecoder();
// Decode byte array
String ds = new String(dec.decode(arr2));
System.out.println("Array decoded is:"+ds);
}
}

Sortie :

Décodage Java Base64

Un résultat codé et décodé d'un tableau est imprimé lors de l'exécution du code.

2. décodage public byte[] (Stringstr)

  • La chaîne d'entrée au format Base64 sera décodée à l'aide du schéma d'encodage Base64.
  • Les résultats seront écrits dans un tableau d'octets nouvellement alloué.
  • L'exécution de cette méthode créera un effet d'exécution de la méthode decode( src.getBytes ( StandardCharsets.ISO_8859_1 ) ).
  • Ici, str est la chaîne d'entrée qui doit être décodée.
  • Une IllegalArgumentException sera levée si la chaîne d'entrée n'est pas dans un format Base64 valide.

Exemple :

Code :

import java.util.Base64;
public class Base64DecodeExample {
public static void main(String[] args) {
//  encoder
Base64.Encoder enc = Base64.getEncoder();
String s = enc.encodeToString("EduCBA".getBytes());
System.out.println("String encoded is: "+ s);
//  decoder
Base64.Decoder dec = Base64.getDecoder();
// Decode string
String ds = new String(dec.decode(s));
System.out.println("String decoded is:"+ds);
}}

Sortie :

Décodage Java Base64

Un résultat codé et décodé d'une chaîne est imprimé lors de l'exécution du code.

3. décodage public int ( octet[] arr, octet[] arr2)

  • Décode chaque octet du tableau d'entrée à l'aide du schéma de codage Base64.
  • Les résultats seront écrits dans un tableau d'octets arr2 qui commence le décalage à partir de 0.
  • Ici, arr est le tableau d'octets d'entrée qui doit être décodé, et arr2 est le tableau de sortie. Assurez-vous que arr2 dispose de suffisamment d'espace pour accueillir les octets d'entrée décodés.
  • Une IllegalArgumentException sera levée si le tableau d'octets d'entrée n'est pas dans un format valide de Base64 ou si arr2 ne dispose pas de suffisamment d'espace pour écrire les octets d'entrée décodés.

Exemple :

Code :

import java.util.Base64;
public class Base64DecodeExample {
public static void main(String[] args) {
//  encoder
Base64.Encoder enc = Base64.getEncoder();
byte arr[] = {'1'};
byte arr2[] = enc.encode(arr);
byte arr3[] = new byte[5];
System.out.println("Array encoded is: "+ arr2);
//  decoder
Base64.Decoder dec = Base64.getDecoder();
System.out.println("Array decoded is:"+ dec.decode(arr2,arr3));
}}

Sortie :

Décodage Java Base64

Un résultat codé et décodé d'un tableau d'octets est imprimé lors de l'exécution du code.

4. public ByteBufferdecode ( ByteBufferbuff )

  • Décode chaque octet du tampon d'octets d'entrée à l'aide du schéma de codage Base64.
  • Les résultats seront écrits dans un bytebuffer nouvellement alloué.
  • Ici, le buff est le inputbytebuffer qui doit être décodé.
  • Une IllegalArgumentException sera levée si le bytebuffer d'entrée n'est pas dans un format valide de Base64.

Exemple :

Code :

import java.nio.ByteBuffer;
import java.util.Base64;
public class Base64DecodeExample {
public static void main(String[] args) {
//  encoder
Base64.Encoder enc = Base64.getEncoder();
String st = "Happy weekend";
ByteBuffer buff= ByteBuffer.wrap(st.getBytes());
ByteBuffer buff2 = enc.encode(buff);
System.out.print("Encoded: ");
while(buff2.hasRemaining()){
char ch = (char) buff2.get();
System.out.print(ch);
}
buff2.clear();
//  decoder
Base64.Decoder dec = Base64.getDecoder();
ByteBuffer buff3 = dec.decode(buff2);
System.out.print(" Decoded: ");
while(buff3.hasRemaining()){
char ch3 = (char) buff3.get();
System.out.print(ch3);
}
buff2.clear();
}
}

Sortie :

Décodage Java Base64

Un résultat codé et décodé d'un bytebuffer est imprimé lors de l'exécution du code.

5. public InputStreamwrap ( InputStreaminpt )

  • An input stream will be returned in order to decode the byte stream, which is Base64 encoded.
  • Here, input is the input stream.

Example

Code:

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Base64;
public class Base64DecodeExample {
public static void main(String[] args) throws IOException {
try (InputStream inpt       = new FileInputStream("F:\\EduCBA\\April\\Edu.txt"))
{
Base64.Encoder enc = Base64.getEncoder();
OutputStream opst = enc.wrap(new FileOutputStream("F:\\EduCBA\\April\\Eduout.txt"));
int b1;
while ((b1 = inpt.read()) != -1)
{
opst.write(b1);
}
opst.close();
}
catch (IOException ie)
{
System.err.printf("I/O exception", ie.getMessage());
}
try (FileOutputStream fopst = new FileOutputStream("F:\\EduCBA\\April\\Eduou.txt"))
{
Base64.Decoder dec = Base64.getDecoder();
InputStream inpt2 = dec.wrap(new FileInputStream("F:\\EduCBA\\April\\Eduout.txt"));
int b1;
while ((b1 = inpt2.read()) != -1)
fopst.write(b1);
inpt2.close();
}
catch (IOException ie)
{
System.err.printf("I/O exception", ie.getMessage());
}
}
}

Output:

In this program, create three create text files, Edu, Eduout, Eduou, in a location for storing data, encoded data, and decoded data respectively. The below figure is the input data.

Décodage Java Base64

The encoded and decoded data will be written into the two other files on executing the code, as shown below.

Décodage Java Base64

Décodage Java Base64

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Classe d'exécution JavaArticle suivant:Classe d'exécution Java