base 64 Generator

Kodieren oder dekodieren Sie einen Base64 Code –
Base64 ist ein Verfahren mit welchem man 8-Bit-Binärdaten in eine Zeichenfolge kodiert, die nur aus lesbaren Codepage-unabhängigen ASCII-Zeichen besteht.

base64-Code kodieren/dekodieren

Text oder Kode eingeben

Stell uns deine Frage. Wir antworten dir schnellstens...

Bei dem Base64-Verfahren handelt es sich um einen Kodierungsvorgang, der 8-bit-Binärdaten in eine Zeichenfolge kodiert. Die 8-bit-Binärdaten sind normalerweise ausführbare Programme oder ZIP-Dateien. Die resultierende Zeichenfolge nach der Kodierung besteht aus zulesenden nicht abhaengigen Codepage ASCII-Zeichen. In Bezug auf das Verschlüsselungsverfahren von OpenPGP wird ausserdem noch eine CRC-24-Prüfsumme dazu genommen, die damit die Kodierung noch sicherer macht. Diese ausgebaute Form von Base64 bezeichnet man als Radix64. Der Bereich wo Base64-Verfahrens am häufigsten angewendet wird, ist im Versand von E-Mail-Anhängen. Damit fällt es in den Bereich Internet-Standard Multipurpose Internet Mail Extension und garantiert den einfachen Transport von Anhängen über das SMTP-Protokoll.
Ausschlaggebend für diese Funktion ist, dass SMTP in seiner herkömmlichen Fassung für den Transport von Sieben Bit hergestellt ist und nicht für Acht bit Binärdaten bereit ist.
Bei der Codierung steigt der bedarf an Speicherplatz und damit steigt auch der Datenstrom, der übertragen wird. Ein Mehrverbrauch entsteht, von etwa 33 Prozent für die Kodierung und 3 Prozent für die Zeilenumbrüche im Kodierungsverfahren, da immer nach 76 codierten Zeichen ein Zeilenumbruch eingefügt. Das Kodierungsverfahren erfolgt gemäß einer ASCII-Wertetabelle, welche die Zahlen von 0 bis 63 zeigt. Diese Aufteilung erklärt einen der Mathematik vor kommendes Stellenwertsystem zur Basis 64, daher kommt der Name Base64-Kodierung.

Beispiel für eine Kodierung:

Base64 Code wird kodiert oder dekodiert.
Base64 ist ein Verfahren mit dem man 8-Bit-Binärdaten in eine Zeichenfolge kodiert, die nur aus zu lesenden Codepage und unabhängigen ASCII-Zeichen besteht.
Ich bin müde ergibt folgenden Code: aWNoIGJpbiBtdWVkZQ==
Von den zu kodierenden Daten werden jeweils drei Byte genommen und die werden in 6-bit-Blöcke aufgeteilt. Aus vorher 3 x 8-bit-Blöcken werden nun 4 mal 6-bit-Blöcke. Durch diese Änderung der Größe des Blocks ist der Transport über SMTP gesichert, weil SMTP für den Transport von 7-bit-Binärdaten kompatibel ist.

Zur Kodierung selbst verwendet man die Zeichen a-z, A-Z, 0-9, / und Plus. Ein Gleichheitszeichen bildet immer das Ende einer Kodierung.

Ist der Wert 0 zum Beispiel der Buchstabe A, der Wert 25 der Buchstaben Z und so weiter.
Diese Zeichen kommen im Extended Binary Coded Decimals Interchange Code vor, und werden auch von Nicht-ASCII-Platformen erklärt.

Ist die Gesamtzahl der vorigen Byte nicht durch drei zu teilen, werden Nullbits eingesetzt, bis man eine durch drei teilbare Byte-Anzahl erhält.

Bestehen 6-bit-Blöcke komplett aus Füllbits wird der Block mit dem Gleichheitszeichen geschrieben. Der Dekodierer erkennt am Kodierungsende an der Anzahl der Gleichheitszzeichen, wie viele Füllbytes eingesetzt wurden.

Anhand der Zeichentabelle werden die Blöcke dann in ASCII-Zeichen angegeben. Das Resultat ist eine nicht lesbare Zeichenfolge von ASCII-Zeichen, die nur mit einem Dekodierer zu Entschlüssen ist.

Häufig gestellte Fragen

Was genau ist unter dem Base64-Verfahren zu verstehen?

Wie wird bei der Codierung vorgegangen?

Was sind alternative Codierungsverfahren?

Häufig gestellte Fragen

Was genau ist unter dem Base64-Verfahren zu verstehen?


Bei dem Base64-Verfahren handelt es sich um ein Kodierungsverfahren, welches 8-bit-Binärdaten in eine Zeichenfolge kodiert. Bei 8-bit-Binärdaten handelt es sich in der Regel um ausführbare Programme oder ZIP-Dateien. Die nach der Codierung resultierende Zeichenfolge besteht aus lesbaren, Codepage-unabhängigen ASCII-Zeichen. Im Zusammenhang mit dem Verschlüsselungsverfahren von OpenPGP wird zudem noch eine CRC-24-Prüfsumme angehängt, welche somit die Codierung noch sicherer gestaltet. Diese erweiterte Form von Base64 wird Radix64 genannt.
Der hauptsächliche Anwendungsbereich des Base64-Verfahrens liegt im Versand von E-Mail-Anhängen. Damit fällt es in den Internet-Standard "MIME" (Multipurpose Internet Mail Extension) und gewährleistet den problemlosen Transport von Anhängen über das SMTP-Protokoll. Grund dafür ist, dass SMTP in seiner ursprünglichen Fassung für den Transport von 7-bit- und nicht von 8-bit-Binärdaten ausgelegt ist.
Nachteil der Codierung ist der Anstieg an Speicherplatzbedarf und somit auch ein Anstieg des Datenstroms, der übertragen wird. Der Mehrverbrauch liegt bei 33% bis 36%. Dabei entfallen 33% auf die Kodierung selber, die restlichen 3% entstehen durch die Zeilenumbrüche im Kodierungsverfahren, da jeweils nach 76 codierten Zeichen (entspricht 57 Bytes) ein Zeilenumbruch eingefügt wird. Dieser Zeilenumbruch ist für die Kodierung als solches jedoch irrelevant.
Seinen Namen erhält das Kodierungsverfahren durch die Kodierung gemäß einer ASCII-Wertetabelle, welche die Werte von 0 bis 63 darstellt. Diese Aufteilung beschreibt ein mathematisches Stellenwertsystem zur Basis 64, daher die Bezeichnung namens Base64-Kodierung. Das Base64-Verfahren ist beschrieben in den RFC's 1421, 1521, 3548 und 4648.

Wie wird bei der Codierung vorgegangen?

Zunächst werden von den zu kodierenden Daten immer drei Byte genommen (entspricht 3 x 8 Bit), welche in 6-bit-Blöcke aufgeteilt werden. Aus ursprünglich 3 x 8-bit-Blöcken werden somit 4 mal 6-bit-Blöcke. Alleine durch diese Änderung der Blockgröße ist bereits ein Transport über SMTP gewährleistet, da SMTP für den Transport von 7-bit-Binärdaten geeignet ist.
Zur eigentlichen Kodierung werden die Zeichen a-z, A-Z, 0-9, / und + verwendet. Ein Gleichheitszeichen definiert das Ende einer Kodierungskette. Jeder der neu gebildeten 6-bit-Blöcke bildet nun anhand seines Inhaltes eine Zahl zwischen 0 und 63, wobei die Zahlen 0 bis 63 jeweils einem druckbaren ASCII-Zeichen entsprechend einer Tabelle zugeordnet sind.
Beispielsweise entspricht der Wert 0 dem Buchstaben A, der Wert 25 dem Buchstaben Z, der Wert 26 dem Buchstaben a, der Wert 51 dem Buchstaben z, die Werte 52 bis 61 den Zahlen 0 bis 9, der Wert 62 dem Zeichen + und der Wert 63 dem Zeichen /.
Da diese Zeichen - wenn auch nach anderem Schema - im EBCDIC (Extended Binary Coded Decimals Interchange Code) vorkommen, können diese ebenfalls von Nicht-ASCII-Platformen interpretiert werden.
Für den Fall, dass die Gesamtzahl der ursprünglichen Byte nicht durch 3 teilbar ist und somit kein vollständiger 6-bit-Block entstehen kann, werden Nullbits eingefügt, bis eine durch 3 teilbare Byte-Anzahl ergibt. Falls nach diesem Verfahren 6-bit-Blöcke entstehen, die komplett aus Füllbits bestehen, wird ein solcher Block mit dem Gleichheitszeichen angegeben. Der Dekodierer erkennt dann anhand der am Kodierungsende vorhandenen Anzahl an Gleichheitszzeichen, wie viele Füllbytes eingefügt wurden.
Die entstandenen 6-bit-Blöcke werden schließlich gemäß der Zeichentabelle in ASCII-Zeichen angegeben. Das Ergebnis ist somit eine nicht lesbare Zeichenfolge von ASCII-Zeichen, welche nur per Dekodierer zu entschlüssen ist. Die Entschlüsselung von Hand ist sehr mühsam.
Beispiel: der Text "Heute ein Base64-Beispiel" soll im Base64-Verfahren kodiert werden. Das Ergebnis der Kodierung ergibt "SGV1dGUgZWluIEJhc2U2NC1CZWlzcGllbA==". Das erste der beiden Gleichheitszeichen am Ende gibt an, dass es einen 6-bit-Block gibt, welcher komplett mit Nullbits gefüllt ist. Das zweite Gleichheitszeichen definiert das Ende der Kodierungskette.
Im Internet finden sich zahlreiche Webseiten, welche das Base64-Kodierungsverfahren demonstrieren können (Suche nach "Base64 Encoder Decoder"). Anhand dieser Kodierungsgeneratoren kann man bei einfachen Beispielen und kurzen Textketten das Kodierungsverfahren nachvollziehen oder eigene Kodierungen auf ihre Richtigkeit überprüfen.

Was sind alternative Codierungsverfahren?

Im Bereich der E-Mail-Kommunikation im Zusammenhang mit dem Austausch von Anhängen ist Base64 noch heute der Standard und wir von den meisten E-Mail-Programmen und -Anbietern angewandt. Die Erweiterung Radix64 (siehe oben) bringt weitere Sicherheitsmechanismen (Prüfsummenbildung) mit sich. Eine Alternative zu Base64, die für Menschen etwas lesbarer und einfacher zu dekodieren ist, ist das Base32-Verfahren. Adobe, PostScript und die IPv6-Adressierung setzen auf das Base85-Verfahren, welches im Vergleich zu Base64 nur 25% Overhead (Speichermehrverbrauch) erzeugt und zudem einen umfangreicheren Zeichensatz bereit hält. Leider konnte sich Base85 nie wirklich durchsetzen. So existiert bereits ein Base91-Verfahren, welches den Zeichensatz noch einmal erweitert und nur 23% Overhead erzeugt.