logo

Java Base64-Kodierung und -Dekodierung

Java stellt eine Base64-Klasse für die Verschlüsselung bereit. Sie können Ihre Daten mithilfe der bereitgestellten Methoden verschlüsseln und entschlüsseln. Sie müssen java.util.Base64 in Ihre Quelldatei importieren, um seine Methoden verwenden zu können.

Diese Klasse bietet drei verschiedene Encoder und Decoder zum Verschlüsseln von Informationen auf jeder Ebene. Sie können diese Methoden auf den folgenden Ebenen verwenden.


Grundlegende Kodierung und Dekodierung

Es verwendet das von Java in RFC 4648 und RFC 2045 spezifizierte Base64-Alphabet für Kodierungs- und Dekodierungsvorgänge. Der Encoder fügt kein Zeilentrennzeichen hinzu. Der Decoder lehnt Daten ab, die Zeichen außerhalb des Base64-Alphabets enthalten.


Kodierung und Dekodierung von URLs und Dateinamen

Es verwendet das von Java in RFC 4648 spezifizierte Base64-Alphabet für Kodierungs- und Dekodierungsvorgänge. Der Encoder fügt kein Zeilentrennzeichen hinzu. Der Decoder lehnt Daten ab, die Zeichen außerhalb des Base64-Alphabets enthalten.


MIME

Es verwendet das Base64-Alphabet gemäß RFC 2045 für Kodierungs- und Dekodierungsvorgänge. Die codierte Ausgabe muss in Zeilen mit jeweils nicht mehr als 76 Zeichen dargestellt werden und verwendet einen Wagenrücklauf „ “, gefolgt von einem Zeilenvorschub „ “ als Zeilentrenner. Am Ende der codierten Ausgabe wird kein Zeilentrenner hinzugefügt. Alle Zeilentrennzeichen oder andere Zeichen, die nicht in der Base64-Alphabettabelle gefunden werden, werden bei der Dekodierung ignoriert.


Verschachtelte Klassen von Base64

Klasse Beschreibung
Base64.Decoder Diese Klasse implementiert einen Decoder zum Decodieren von Bytedaten mithilfe des Base64-Codierungsschemas gemäß RFC 4648 und RFC 2045.
Base64.Encoder Diese Klasse implementiert einen Encoder zum Codieren von Bytedaten mithilfe des Base64-Codierungsschemas gemäß RFC 4648 und RFC 2045.

Base64-Methoden

Methoden Beschreibung
öffentlicher statischer Base64.Decoder getDecoder() Es gibt einen Base64.Decoder zurück, der mithilfe des Base64-Codierungsschemas vom Typ „Basic“ decodiert.
öffentlicher statischer Base64.Encoder getEncoder() Es gibt einen Base64.Encoder zurück, der mit dem Base64-Codierungsschema des Basistyps codiert.
öffentlicher statischer Base64.Decoder getUrlDecoder() Es gibt einen Base64.Decoder zurück, der mithilfe des URL- und Dateinamen-sicheren Base64-Codierungsschemas dekodiert.
öffentlicher statischer Base64.Decoder getMimeDecoder() Es gibt einen Base64.Decoder zurück, der mithilfe des Base64-Decodierungsschemas des MIME-Typs decodiert.
öffentlicher statischer Base64.Encoder getMimeEncoder() Es gibt einen Base64.Encoder zurück, der mit dem Base64-Codierungsschema des MIME-Typs codiert.
öffentlicher statischer Base64.Encoder getMimeEncoder(int lineLength, byte[] lineSeparator) Es gibt einen Base64.Encoder zurück, der mithilfe des Base64-Codierungsschemas des MIME-Typs mit angegebener Zeilenlänge und Zeilentrennzeichen codiert.
öffentlicher statischer Base64.Encoder getUrlEncoder() Es gibt einen Base64.Encoder zurück, der mithilfe des URL- und Dateinamen-sicheren Base64-Codierungsschemas codiert.

Base64.Decoder-Methoden

Methoden Beschreibung
öffentliches Byte[] dekodieren(byte[] src) Es dekodiert alle Bytes aus dem Eingabebyte-Array mithilfe des Base64-Codierungsschemas und schreibt die Ergebnisse in ein neu zugewiesenes Ausgabebyte-Array. Das zurückgegebene Byte-Array hat die Länge der resultierenden Bytes.
öffentliches Byte[] dekodieren(String src) Es dekodiert einen Base64-kodierten String mithilfe des Base64-Kodierungsschemas in ein neu zugewiesenes Byte-Array.
public int decode(byte[] src, byte[] dst) Es dekodiert alle Bytes aus dem Eingabebyte-Array mithilfe des Base64-Codierungsschemas und schreibt die Ergebnisse beginnend bei Offset 0 in das angegebene Ausgabebyte-Array.
öffentliche ByteBuffer-Dekodierung (ByteBuffer-Puffer) Es dekodiert alle Bytes aus dem Eingabebytepuffer mithilfe des Base64-Kodierungsschemas und schreibt die Ergebnisse in einen neu zugewiesenen ByteBuffer.
öffentlicher InputStream-Wrap (InputStream ist) Es gibt einen Eingabestream zum Dekodieren des Base64-codierten Bytestreams zurück.

Base64.Encoder-Methoden

Methoden Beschreibung
öffentliches Byte[] encode(byte[] src) Es codiert alle Bytes aus dem angegebenen Byte-Array mithilfe des Base64-Codierungsschemas in ein neu zugewiesenes Byte-Array. Das zurückgegebene Byte-Array hat die Länge der resultierenden Bytes.
public int encode(byte[] src, byte[] dst) Es codiert alle Bytes aus dem angegebenen Byte-Array mithilfe des Base64-Codierungsschemas und schreibt die resultierenden Bytes beginnend bei Offset 0 in das angegebene Ausgabe-Byte-Array.
öffentlicher String encodeToString(byte[] src) Es kodiert das angegebene Byte-Array mithilfe des Base64-Kodierungsschemas in einen String.
öffentliche ByteBuffer-Kodierung (ByteBuffer-Puffer) Es kodiert alle verbleibenden Bytes aus dem angegebenen Bytepuffer mithilfe des Base64-Kodierungsschemas in einen neu zugewiesenen ByteBuffer. Bei der Rückkehr wird die Position des Quellpuffers bis zu ihrem Limit aktualisiert; sein Limit wird nicht geändert worden sein. Die Position des zurückgegebenen Ausgabepuffers ist Null und seine Grenze ist die Anzahl der resultierenden codierten Bytes.
öffentlicher OutputStream-Wrap (OutputStream-Betriebssystem) Es umschließt einen Ausgabestream zum Codieren von Bytedaten mithilfe des Base64-Codierungsschemas.
öffentlicher Base64.Encoder withoutPadding() Es gibt eine Encoder-Instanz zurück, die äquivalent zu dieser codiert, jedoch ohne das Hinzufügen eines Füllzeichens am Ende der codierten Bytedaten.

Java Base64-Beispiel: Grundlegende Kodierung und Dekodierung

 import java.util.Base64; publicclass Base64BasicEncryptionExample { publicstaticvoid main(String[] args) { // Getting encoder Base64.Encoder encoder = Base64.getEncoder(); // Creating byte array bytebyteArr[] = {1,2}; // encoding byte array bytebyteArr2[] = encoder.encode(byteArr); System.out.println('Encoded byte array: '+byteArr2); bytebyteArr3[] = newbyte[5]; // Make sure it has enough size to store copied bytes intx = encoder.encode(byteArr,byteArr3); // Returns number of bytes written System.out.println('Encoded byte array written to another array: '+byteArr3); System.out.println('Number of bytes written: '+x); // Encoding string String str = encoder.encodeToString('JavaTpoint'.getBytes()); System.out.println('Encoded string: '+str); // Getting decoder Base64.Decoder decoder = Base64.getDecoder(); // Decoding string String dStr = new String(decoder.decode(str)); System.out.println('Decoded string: '+dStr); } } 

Ausgabe:

 Encoded byte array: [B@6bc7c054 Encoded byte array written to another array: [B@232204a1 Number of bytes written: 4 Encoded string: SmF2YVRwb2ludA== Decoded string: JavaTpoint 

Java Base64-Beispiel: URL-Kodierung und -Dekodierung

 import java.util.Base64; publicclass Base64BasicEncryptionExample { publicstaticvoid main(String[] args) { // Getting encoder Base64.Encoder encoder = Base64.getUrlEncoder(); // Encoding URL String eStr = encoder.encodeToString('http://www.javatpoint.com/java-tutorial/'.getBytes()); System.out.println('Encoded URL: '+eStr); // Getting decoder Base64.Decoder decoder = Base64.getUrlDecoder(); // Decoding URl String dStr = new String(decoder.decode(eStr)); System.out.println('Decoded URL: '+dStr); } } 

Ausgabe:

 Encoded URL: aHR0cDovL3d3dy5qYXZhdHBvaW50LmNvbS9qYXZhLXR1dG9yaWFsLw== Decoded URL: http://www.javatpoint.com/java-tutorial/ 

Java Base64-Beispiel: MIME-Kodierung und -Dekodierung

 package Base64Encryption; import java.util.Base64; publicclass Base64BasicEncryptionExample { publicstaticvoid main(String[] args) { // Getting MIME encoder Base64.Encoder encoder = Base64.getMimeEncoder(); String message = 'Hello, 
You are informed regarding your inconsistency of work'; String eStr = encoder.encodeToString(message.getBytes()); System.out.println('Encoded MIME message: '+eStr); // Getting MIME decoder Base64.Decoder decoder = Base64.getMimeDecoder(); // Decoding MIME encoded message String dStr = new String(decoder.decode(eStr)); System.out.println('Decoded message: '+dStr); } } 

Ausgabe:

 Encoded MIME message: SGVsbG8sIApZb3UgYXJlIGluZm9ybWVkIHJlZ2FyZGluZyB5b3VyIGluY29uc2lzdGVuY3kgb2Yg d29yaw== Decoded message: Hello, You are informed regarding your inconsistency of work