Cryptology Academy · Lektion

Base64-Kodierung: So funktioniert sie

Lüften Sie das Geheimnis von Base64 – dem Kodierungsschema, das in E-Mails, JWTs und der Datenübertragung verwendet wird.

Lektion 1 von 413 Schritte

Base64-Kodierung: So funktioniert sie ist eine kostenlose Cryptology Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Cryptology Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Cryptology Academy-Kurs umfasst insgesamt 4 Lektionen.

Warum Binärdaten eine Textdarstellung benötigen

Viele Systeme, darunter E-Mail, HTTP-Header und XML, wurden für die Verarbeitung von Text, nicht aber für beliebige Binärdaten entwickelt. Ein Bytewert von 0x00 (Nullbyte) oder 0x1A (Steuerzeichen) kann zu Fehlern beim Parsen oder zu Datenbeschädigungen führen.

Die Base64-Kodierung wandelt beliebige Binärdaten in eine Teilmenge von ASCII-Zeichen um, die für rein textbasierte Systeme sicher ist. Dadurch können Binärinhalte wie Bilder und Zertifikate in textbasierten Protokollen eingebettet werden.

6-Bit-Gruppierung aus 8-Bit-Bytes

Base64 nimmt drei 8-Bit-Bytes (insgesamt 24 Bit) und teilt sie in vier 6-Bit-Gruppen auf. Jede 6-Bit-Gruppe stellt einen Wert zwischen 0 und 63 dar, der einem Zeichen im Base64-Alphabet zugeordnet wird.

Dieses Verhältnis von 3 zu 4 bedeutet, dass jeweils 3 Eingabe-Bytes 4 Ausgabezeichen ergeben – eine Größenzunahme von 33 %. Die Rechnung geht ohne Rest auf, weil 3 Bytes = 24 Bit = 4 Gruppen mit jeweils 6 Bit sind.

Das Base64-Alphabet

Das Base64-Alphabet umfasst 64 Zeichen: Großbuchstaben A–Z (Indizes 0–25), Kleinbuchstaben a–z (Indizes 26–51), Ziffern 0–9 (Indizes 52–61), das Pluszeichen + (Index 62) und den Schrägstrich / (Index 63).

Dieses Alphabet vermeidet alle Steuerzeichen und die meisten Satzzeichen, die in Textsystemen Probleme verursachen könnten. Jedes Zeichen der Base64-Ausgabe ist ein druckbares ASCII-Zeichen, das praktisch in jedem Textprotokoll sicher verwendet werden kann.

Auffüllen mit =-Zeichen

Wenn die Eingabelänge kein Vielfaches von 3 Bytes ist, wird eine Auffüllung benötigt. Bleibt 1 Byte übrig, wird es zu einer 12-Bit-Gruppe aufgefüllt, die 2 Base64-Zeichen gefolgt von "==" ergibt. Bei 2 verbleibenden Bytes entstehen 3 Base64-Zeichen gefolgt von "=".

Die =-Auffüllzeichen sind keine kodierten Daten. Sie signalisieren dem Decoder, dass der letzte Block kürzer als 3 Bytes ist. Dadurch ist die Ausgabelänge immer ein Vielfaches von 4 Zeichen.

Kodierungsbeispiel: Man

Die ASCII-Werte für "Man" sind M=77 (01001101), a=97 (01100001), n=110 (01101110). Aneinandergereiht: 010011010110000101101110.

Aufgeteilt in 6-Bit-Gruppen: 010011 | 010110 | 000101 | 101110 = 19 | 22 | 5 | 46. Nachschlagen im Base64-Alphabet: 19=T, 22=W, 5=F, 46=u. "Man" wird zu "TWFu" kodiert.

Die Base64url-Variante

Standard-Base64 verwendet + und /, die in URLs und Dateinamen eine besondere Bedeutung haben. Base64url ist eine Variante, die + durch - und / durch _ ersetzt und sich dadurch für URLs, Dateinamen und Cookie-Werte eignet.

JWTs (JSON Web Tokens) verwenden Base64url für die Kodierung ihrer Header- und Payload-Abschnitte. Die JOSE-Standards (JSON Object Signing and Encryption) basieren vollständig auf Base64url.

Verwendung von Base64

Base64 wird für MIME-Anhänge in E-Mails (zur Kodierung von Binärdateien für textbasierte E-Mails), für JWT-Tokens (zur Kodierung von JSON-Header und -Payload), für Data-URIs in HTML (zum direkten Einbetten von Bildern in CSS/HTML) und für das PEM-Format von X.509-Zertifikaten verwendet.

Das PEM-Format (Privacy Enhanced Mail) verpackt binäre, DER-kodierte Zertifikate in Base64 zwischen den Headern "-----BEGIN CERTIFICATE-----" und "-----END CERTIFICATE-----".

Base64 bietet keinerlei Sicherheit

Base64 ist keine Verschlüsselung, sondern eine umkehrbare Kodierung ohne Schlüssel. Jede Person, die Base64-kodierte Daten sieht, kann sie sofort mit frei verfügbaren Tools oder mit einem Einzeiler in jeder Programmiersprache dekodieren.

Ein häufiger Fehler besteht darin, anzunehmen, Base64-kodierte Passwörter oder Tokens seien "verborgen". Das sind sie nicht. Wenn Sie die Daten dekodieren können, kann das auch ein Angreifer. Sicherheit erfordert Verschlüsselung, nicht Kodierung.

Dekodierung ist trivial

Die Dekodierung von Base64 ist genauso einfach wie die Kodierung. Jede 4 Zeichen umfassende Base64-Gruppe wird wieder ihren 6-Bit-Werten zugeordnet, aneinandergereiht und in Bytes aufgeteilt. Die =-Auffüllung gibt an, wie viele Bytes die letzte Gruppe darstellt.

In Python: import base64; base64.b64decode("TWFu") liefert b"Man" zurück. Der Vorgang ist deterministisch und verlustfrei und erfordert weder einen Schlüssel noch ein Geheimnis.

Base64-Overhead und Effizienz

Der Größen-Overhead von 33 % bei Base64 (4 Ausgabe-Bytes pro 3 Eingabe-Bytes) sowie Zeilenumbrüche nach jeweils 76 Zeichen (wie von MIME vorgeschrieben) machen Base64 bei großen Binärübertragungen ineffizient.

Moderne Binärprotokolle wie HTTP/2 mit binärer Rahmung und WebSockets mit binären Frames können rohe Bytes direkt verarbeiten. Dadurch entfällt der Bedarf an Base64 in leistungsorientierten Anwendungsfällen.

Base32 und Base58: Weitere Kodierungsschemata

Base32 verwendet ein Alphabet mit 32 Zeichen (A–Z und 2–7). Die Ausgabe ist länger als bei Base64, aber unabhängig von Groß- und Kleinschreibung und eignet sich für Kontexte, in denen die Groß- und Kleinschreibung verloren gehen kann. Gemeinsame TOTP-Geheimnisse werden häufig in Base32 kodiert.

Base58, das Bitcoin für Wallet-Adressen verwendet, entfernt visuell leicht verwechselbare Zeichen wie 0, O, I und l. Dadurch werden Übertragungsfehler beim Kopieren von Adressen reduziert. Der Nachteil besteht darin, dass Base58 keine Zweierpotenz als Basis verwendet, wodurch die Kodierung etwas komplexer ist.

Base64-Alphabet-Quiz

Testen Sie Ihr Wissen über die Base64-Kodierung.

Wichtigste Erkenntnisse: Base64-Kodierung

Base64 wandelt Binärdaten in Text um, indem Bits in 6-Bit-Blöcke gruppiert und diese einem Alphabet mit 64 Zeichen zugeordnet werden. Dabei entsteht ein Größen-Overhead von 33 %, und für Eingaben, deren Länge kein Vielfaches von 3 Bytes ist, wird die Auffüllung = verwendet.

Base64 bietet keinerlei Sicherheit. Es wird für die Kompatibilität bei der Übertragung verwendet, nicht für Vertraulichkeit. Base64url (-/_) ist die URL-sichere Variante, die in JWTs verwendet wird. Zum Dekodieren sind weder ein Schlüssel noch wenige Millisekunden erforderlich.

Kostenlos starten

Lerne Cryptology Academy mit einem KI-Tutor — kostenlos

Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.

Kurse
67
Lektionen
261

Häufig gestellte Fragen

Ist die Lektion „Base64-Kodierung: So funktioniert sie“ kostenlos?

Ja — der vollständige Text von „Base64-Kodierung: So funktioniert sie“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Cryptology Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Cryptology Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Base64-Kodierung: So funktioniert sie“?

Lüften Sie das Geheimnis von Base64 – dem Kodierungsschema, das in E-Mails, JWTs und der Datenübertragung verwendet wird. Du übst Cryptology Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Cryptology Academy zu starten?

Keine Vorkenntnisse erforderlich. Cryptology Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „Base64-Kodierung: So funktioniert sie“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Cryptology Academy-Lektion Code schreiben und ausführen?

Ja. Jede Cryptology Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Base64-Kodierung: So funktioniert sie
  2. ASCII, Unicode und Textdarstellung
  3. Hexadezimaldarstellung kryptografischer Ausgaben
  4. Kodierung vs. Verschlüsselung vs. Hashing
← Zurück zu Cryptology Academy