Einführung
In diesem Lab werden wir lernen, wie man in Java Base64-Daten mithilfe der Klasse java.util.Base64
und der Apache Commons-Bibliothek kodiert und dekodiert.
💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken
In diesem Lab werden wir lernen, wie man in Java Base64-Daten mithilfe der Klasse java.util.Base64
und der Apache Commons-Bibliothek kodiert und dekodiert.
In diesem Schritt erstellen Sie eine neue Java-Datei. Öffnen Sie das Terminal und führen Sie den folgenden Befehl aus, um eine neue Java-Datei zu erstellen:
touch ~/project/Base64Encoding.java
Dieser Befehl erstellt eine neue Datei namens Base64Encoding.java
im Verzeichnis ~/project
. Sie können einen beliebigen bevorzugten Namen verwenden, aber sicherstellen, dass der Dateiname mit .java
endet.
In diesem Schritt lernen wir über die Grundlegende Kodierung und Dekodierung.
getEncoder()
-Methode verwenden, die einen einfachen Base64.Encoder zurückgibt.encodeToString()
-Methode verwenden, um die Zeichenfolge zu kodieren.Zum Dekodieren einer codierten Zeichenfolge verwenden wir den Base64.Decoder, der von der getDecoder()
-Methode zurückgegeben wird.
decode()
-Methode des Decoders verwenden.Verwenden Sie den folgenden Codeblock, um eine Zeichenfolge zu kodieren und zu dekodieren:
import java.util.Base64;
public class Base64Encoding {
public static void main(String[] args) {
String strToEncode = "Hello World";
byte[] bytesToEncode = strToEncode.getBytes(); // wandelt die Zeichenfolge in ein Byte-Array um
// Kodierung
String encodedStr = Base64.getEncoder().encodeToString(bytesToEncode);
System.out.println("Codierte Zeichenfolge: " + encodedStr);
// Dekodierung
byte[] decodedByteArr = Base64.getDecoder().decode(encodedStr);
String decodedStr = new String(decodedByteArr);
System.out.println("Dekodierte Zeichenfolge: " + decodedStr);
}
}
Führen Sie den folgenden Befehl im Terminal aus, um den Code zu kompilieren und auszuführen:
javac Base64Encoding.java && java Base64Encoding
Im vorherigen Schritt haben wir gesehen, dass die Kodierung Auffüllzeichen ( = ) am Ende der codierten Zeichenfolge hinzufügt. In diesem Schritt werden wir lernen, wie man ohne Auffüllzeichen kodiert.
Verwenden Sie den folgenden Codeblock, um die Zeichenfolge ohne Auffüllung zu kodieren:
import java.util.Base64;
public class Base64Encoding {
public static void main(String[] args) {
String strToEncode = "Java";
byte[] bytesToEncode = strToEncode.getBytes(); // wandelt die Zeichenfolge in ein Byte-Array um
// Kodierung ohne Auffüllung
String encodedStr = Base64.getEncoder().withoutPadding().encodeToString(bytesToEncode);
System.out.println("Codierte Zeichenfolge: " + encodedStr);
}
}
Führen Sie den folgenden Befehl im Terminal aus, um den Code zu kompilieren und auszuführen:
javac Base64Encoding.java && java Base64Encoding
In diesem Schritt lernen wir über die URL- und Dateinamen-sichere Kodierung und Dekodierung.
Die Base64-Klasse behandelt die URL-Kodierung und -Dekodierung, indem sie das URL- und Dateinamen-sichere Base64-Alphabet verwendet.
getUrlEncoder()
-Methode verwenden, um einen Base64-URL-Coder zu erhalten.encodeToString()
-Methode wie im vorherigen Abschnitt verwenden.Ähnlich haben wir eine getUrlDecoder()
-Methode, die einen URL-Decoder zurückgibt.
decode()
-Methode mit diesem Decoder verwenden, um zu dekodieren.Verwenden Sie den folgenden Codeblock, um eine URL zu kodieren und zu dekodieren:
import java.util.Base64;
public class Base64Encoding {
public static void main(String[] args) {
String urlToEncode = "https://go.java/?intcmp=gojava-banner-java-com";
// Kodierung
String encodedUrl = Base64.getUrlEncoder().encodeToString(urlToEncode.getBytes());
System.out.println("Codierte URL: " + encodedUrl);
// Dekodierung
byte[] decodedUrlBytes = Base64.getUrlDecoder().decode(encodedUrl);
String decodedUrl = new String(decodedUrlBytes);
System.out.print("Dekodierte URL: " + decodedUrl);
}
}
Führen Sie den folgenden Befehl im Terminal aus, um den Code zu kompilieren und auszuführen:
javac Base64Encoding.java && java Base64Encoding
In diesem Schritt lernen wir über die MIME-Kodierung und -Dekodierung.
Wir können die getMimeEncoder()
- und die encodeToString()
-Methoden für die Kodierung verwenden.
Zum Dekodieren verwenden wir die getMimeDecoder()
-Methode, um einen Decoder zu erhalten, und anschließend die decode()
-Methode.
Verwenden Sie den folgenden Codeblock, um MIME-Daten zu kodieren und zu dekodieren:
import java.util.Base64;
import java.util.UUID;
public class Base64Encoding {
public static void main(String[] args) {
// Erstellen einer MIME-Eingabe für die Kodierung
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 10; ++i) {
sb.append(UUID.randomUUID().toString());
}
// Kodierung
byte[] bytes = sb.toString().getBytes();
String mimeEncodedStr = Base64.getMimeEncoder().encodeToString(bytes);
System.out.println("Codierte Zeichenfolge: " + mimeEncodedStr);
// Dekodierung
byte[] mimeDecodedBytes = Base64.getMimeDecoder().decode(mimeEncodedStr);
String mimeDecodedStr = new String(mimeDecodedBytes);
}
}
Führen Sie den folgenden Befehl im Terminal aus, um den Code zu kompilieren und auszuführen:
javac Base64Encoding.java && java Base64Encoding
In diesem Schritt lernen wir, wie man die Apache Commons-Bibliothek zur Kodierung und Dekodierung von Base64-Daten verwendet.
Die Apache Commons-Bibliothek stellt eine Base64-Klasse im Paket org.apache.commons.codec.binary
zur Verfügung.
encode()
- und decode()
-Methoden auf den String-Bytes verwenden, um die Kodierung und Dekodierung durchzuführen.Verwenden Sie den folgenden Codeblock, um eine Zeichenfolge mit der Apache Commons Base64-Klasse zu kodieren und zu dekodieren:
import org.apache.commons.codec.binary.Base64;
public class Base64Encoding {
public static void main(String[] args) {
Base64 base64 = new Base64();
// Kodierung
String strToEncode = "Hello World";
byte[] encodedBytes = base64.encode(strToEncode.getBytes());
String encodedStr = new String(encodedBytes);
System.out.println("Codierte Zeichenfolge: " + encodedStr);
// Dekodierung
byte[] decodedByteArr = base64.decode(encodedStr.getBytes());
String decodedStr = new String(decodedByteArr);
System.out.println("Dekodierte Zeichenfolge: " + decodedStr);
// Direkten Zugang zur API über die statischen Methoden encodeBase64() und decodeBase64()
String strToEncode2 = "Hello World";
String encodedStr2 = new String(Base64.encodeBase64(strToEncode.getBytes()));
String decodedStr2 = new String(Base64.decodeBase64(encodedStr.getBytes()));
}
}
Führen Sie den folgenden Befehl im Terminal aus, um den Code zu kompilieren und auszuführen:
javac -cp commons-codec-1.15.jar Base64Encoding.java && java -cp commons-codec-1.15.jar:. Base64Encoding
Hinweis: Um diesen Code auszuführen, müssen Sie die .jar
-Datei der Apache Commons Codec-Bibliothek herunterladen und in den Klassenpfad importieren. Im obigen Befehl haben wir -cp commons-codec-1.15.jar
hinzugefügt, um den Klassenpfad der Bibliothek anzugeben.
In diesem Lab haben wir gelernt, wie man in Java Base64-Daten mit der java.util.Base64
-Klasse und der Apache Commons-Bibliothek kodieren und dekodieren kann. Wir haben drei verschiedene Base64-Kodierungs- und -Dekodierungsschemata behandelt - Basic, URL und Dateinamen-sicher sowie MIME.