Heim > Java > javaLernprogramm > Hauptteil

Java Base64 Dekodierung

王林
Freigeben: 2024-08-30 16:10:45
Original
800 Leute haben es durchsucht

Bei Java Base64 Decode ist Base64 ein Codierungsschema in einem Binär-zu-Text-Format, das Binärdaten bezeichnet, die in Form eines druckbaren ASCII-String-Formats vorliegen, indem sie in Radix-64-Darstellungen übersetzt werden. Diese Base64-Daten können je nach den Anforderungen des Benutzers kodiert oder dekodiert werden und können mit Hilfe bestimmter Methoden durchgeführt werden. Dafür ist der Import des Pakets java.util.Base64 ein wesentlicher Schritt. Der Hauptvorteil der Kodierung und Dekodierung dieser Daten ist sowohl der Datenschutz als auch die Sicherheit. In den folgenden Abschnitten erfolgt eine detaillierte Beschreibung der einzelnen Methoden.

Starten Sie Ihren kostenlosen Softwareentwicklungskurs

Webentwicklung, Programmiersprachen, Softwaretests und andere

Erklärung:

Unten finden Sie die Deklaration für die Base64-Dekodierung:

public static class Base64.Decoder extends Object
Nach dem Login kopieren

Wie funktioniert die Base64-Dekodierung in Java?

Lassen Sie uns nun die Funktionsweise der Base64-Dekodierung sehen.

  • Erstellen Sie zunächst ein Encoderobjekt und codieren Sie die Zeichenfolge/Bytes/Bytebuffer entsprechend der Anforderung. Dies kann mit der Methode Base64.getEncoder() erfolgen.
  • Sobald es fertig ist, erstellen Sie ein neues Array für die codierten Daten.
  • Um die Daten zu dekodieren, erstellen Sie ein Decoderobjekt und ein weiteres Array zum Speichern dekodierter Daten.
  • Dekodieren Sie die kodierten Daten mit der Methode decode().
  • Drucken Sie das im Decoder-Array verfügbare Ergebnis aus.

Methoden der Java Base64-Dekodierung

Im Folgenden sind die verschiedenen Methoden der Java Base64-Dekodierung aufgeführt.

Java Base64 Dekodierung

1. öffentliches Byte[] dekodieren ( byte[] arr )

  • Dekodiert jedes einzelne Byte aus dem Eingabearray mit Hilfe des Base64-Kodierungsschemas.
  • Ergebnisse werden in ein neu zugewiesenes Byte-Array geschrieben.
  • Das zurückgegebene Byte-Array hat eine ähnliche Länge wie die resultierenden Bytes.
  • Hier ist arr das Eingabebyte-Array, das dekodiert werden muss.
  • Eine IllegalArgumentException wird ausgelöst, wenn das Eingabebyte-Array nicht in einem gültigen Base64-Format vorliegt.

Beispiel:

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);
}
}
Nach dem Login kopieren

Ausgabe:

Java Base64 Dekodierung

Ein kodiertes und dekodiertes Ergebnis eines Arrays wird bei der Ausführung des Codes gedruckt.

2. öffentliches Byte[] dekodieren ( Stringstr )

  • Eingabezeichenfolge im Base64-Format wird mit Hilfe des Base64-Codierungsschemas dekodiert.
  • Ergebnisse werden in ein neu zugewiesenes Byte-Array geschrieben.
  • Die Ausführung dieser Methode erzeugt den Effekt der Ausführung der Methode decode( src.getBytes ( StandardCharsets.ISO_8859_1 ) ).
  • Hier ist str die Eingabezeichenfolge, die dekodiert werden muss.
  • Eine IllegalArgumentException wird ausgelöst, wenn die Eingabezeichenfolge nicht in einem gültigen Base64-Format vorliegt.

Beispiel:

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);
}}
Nach dem Login kopieren

Ausgabe:

Java Base64 Dekodierung

Ein kodiertes und dekodiertes Ergebnis einer Zeichenfolge wird bei der Ausführung des Codes gedruckt.

3. öffentliche int-Dekodierung ( byte[] arr, byte[] arr2)

  • Dekodiert jedes einzelne Byte aus dem Eingabearray mit Hilfe des Base64-Kodierungsschemas.
  • Ergebnisse werden in ein Byte-Array arr2 geschrieben, das den Offset bei 0 beginnt.
  • Hier ist arr das Eingabebyte-Array, das dekodiert werden muss, und arr2 ist das Ausgabearray. Stellen Sie sicher, dass arr2 über genügend Speicherplatz für die dekodierten Eingabebytes verfügt.
  • Eine IllegalArgumentException wird ausgelöst, wenn das Eingabebyte-Array kein gültiges Base64-Format hat oder arr2 nicht genügend Platz zum Schreiben der decodierten Eingabebytes hat.

Beispiel:

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));
}}
Nach dem Login kopieren

Ausgabe:

Java Base64 Dekodierung

Ein kodiertes und dekodiertes Ergebnis eines Byte-Arrays wird bei der Ausführung des Codes gedruckt.

4. öffentlicher ByteBufferdecode ( ByteBufferbuff )

  • Dekodiert jedes einzelne Byte aus dem Eingabebyte-Puffer mit Hilfe des Base64-Kodierungsschemas.
  • Ergebnisse werden in einen neu zugewiesenen Bytepuffer geschrieben.
  • Hier ist der Buff der Eingabebytepuffer, der dekodiert werden muss.
  • Eine IllegalArgumentException wird ausgelöst, wenn der Eingabebytepuffer kein gültiges Base64-Format hat.

Beispiel:

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();
}
}
Nach dem Login kopieren

Ausgabe:

Java Base64 Dekodierung

Ein kodiertes und dekodiertes Ergebnis eines Bytepuffers wird bei der Ausführung des Codes gedruckt.

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());
}
}
}
Nach dem Login kopieren

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.

Java Base64 Dekodierung

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

Java Base64 Dekodierung

Java Base64 Dekodierung

Das obige ist der detaillierte Inhalt vonJava Base64 Dekodierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!