Base64 Kodieren / Dekodieren

Text in Base64 kodieren oder Base64 zurück in Text dekodieren — UTF-8-sicher, vollständig in Ihrem Browser.

1.279 Aufrufe

So funktioniert es

Base64 wandelt binäre Daten mithilfe eines Alphabets aus 64 druckbaren Zeichen in reinen Text um: A–Z, a–z, 0–9, plus + und / (64 Symbole sind genau 2⁶, daher der Name Base64). Der Encoder liest die Eingabe jeweils 3 Byte (24 Bit) auf einmal, teilt diese 24 Bit in vier 6-Bit-Blöcke und ordnet jedem 6-Bit-Block ein Zeichen aus dem Alphabet zu — so werden 3 Byte Binärdaten immer zu genau 4 Textzeichen. Ist die Eingabelänge kein glattes Vielfaches von 3, wird die letzte Gruppe mit einem oder zwei =-Zeichen aufgefüllt, damit die Ausgabelänge ein Vielfaches von 4 bleibt.

Konkret: Die drei Bytes des Worts "Man" (77, 97, 110 — binär 01001101 01100001 01101110) werden zu vier 6-Bit-Blöcken neu gruppiert (010011, 010110, 000101, 101110), jeder wird auf ein Zeichen abgebildet, und es entsteht TWFu. Da sich jedes Eingabe-Byte-Trio zuverlässig zu 4 Ausgabezeichen erweitert, ist Base64-kodierte Daten verlässlich rund 33 % größer als das Original — ein 300-KB-Bild wird zu einer rund 400-KB-Base64-Zeichenkette, was beim Einbetten von Bildern als data:-URI oder beim Anhängen von Binärdateien in JSON oder E-Mails relevant ist.

Dieses Tool behandelt Unicode korrekt, indem es den Text zuerst UTF-8-kodiert, sodass mehrbytige Zeichen und Emojis ("çğü 😀") unbeschadet hin- und zurückkonvertiert werden — ein naiver JavaScript-Aufruf von btoa() wirft dabei einen Fehler, weil er ein Byte pro Zeichen erwartet. Alles läuft lokal in Ihrem Browser ab; nichts, was Sie eingeben, wird irgendwohin gesendet.

Base64 taucht ständig an Stellen auf, die den meisten nie auffallen: ein HTML-Tag <img src="data:image/png;base64,..."> bettet ein ganzes Bild direkt ein, statt auf eine Datei zu verlinken; der HTTP-Header Authorization: Basic trägt eine Base64-kodierte "Benutzername:Passwort"-Zeichenkette (das ist reine Formatierung, kein Schutz — erst TLS sorgt für Vertraulichkeit bei der Übertragung); E-Mail-Anhänge werden seit dem ursprünglichen MIME-Standard Base64-kodiert, weil SMTP für die Übertragung von 7-Bit-Text konzipiert wurde, nicht für rohe Binärdaten; und JSON Web Tokens (JWTs) nutzen die URL-sichere Variante, um eine signierte Binärstruktur in drei durch Punkte getrennte Textabschnitte zu packen.

Was Sie wissen sollten

  • Base64 ist keine Verschlüsselung — es ist eine umkehrbare, öffentlich bekannte Darstellung ohne jede Geheimhaltung. Jeder kann sie mit demselben Alphabet sofort dekodieren; sie existiert einzig, um binäre Daten sicher durch reine Textkanäle zu schleusen (E-Mail-MIME-Anhänge, data-URIs, JSON-Felder, HTTP-Basic-Auth-Header), niemals um Inhalte zu verbergen.
  • URL-sichere Variante: weil + und / in URLs eine besondere Bedeutung haben, ersetzt ein "URL-sicheres" Base64-Alphabet sie durch - und _ und lässt die =-Auffüllung oft weg. Dieses Tool dekodiert beide Varianten automatisch.
  • Der Größenaufschlag ist fest und vorhersehbar: die rund 33-prozentige Vergrößerung (Verhältnis 4/3) gilt exakt für die Nutzdaten selbst — deshalb sind APIs, die rohe Binär-Uploads akzeptieren, meist bandbreiteneffizienter als solche, die Base64-verpackte JSON-Bodies verlangen.
  • Die Auffüllung verrät den Rest: ein = bedeutet, dass die ursprüngliche Datenlänge 2 Byte über einem Vielfachen von 3 lag; zwei = bedeuten 1 Byte darüber. Keine Auffüllung bedeutet, dass die Eingabe genau ein Vielfaches von 3 Byte war.

Häufig gestellte Fragen

Warum sieht meine dekodierte Ausgabe verstümmelt aus?

Meist war die Eingabe kein gültiges Base64 (abgeschnitten oder mit URL-sicheren Zeichen -_ statt +/), oder die ursprünglichen Bytes waren von vornherein kein Text. Dieses Tool dekodiert URL-sichere Varianten automatisch.

Kann ich Dateien kodieren?

Dieses Tool ist für Text gedacht. Für Dateien ist das übliche Muster eine data:-URI, die die Base64-Zeichenkette mit einem MIME-Typ-Präfix umschließt, damit ein Browser oder E-Mail-Client weiß, wie sie darzustellen ist — die meisten Sprachen bieten dafür Einzeiler (PHP base64_encode(file_get_contents(...)), JS FileReader.readAsDataURL). Sehr große Dateien werden angesichts des ~33-prozentigen Größenaufschlags meist besser als rohe Binärdaten statt Base64-verpackt übertragen.

Ist Base64 sicher für Passwörter?

Nein — es ist konstruktionsbedingt trivial umkehrbar, ohne jeden Schlüssel oder jedes Geheimnis. HTTP Basic Auth nutzt es nur zur Formatierung bei der Übertragung (packt "Benutzer:Passwort" in eine header-sichere Zeichenkette) und verlässt sich vollständig auf TLS/HTTPS für tatsächliche Vertraulichkeit während der Übertragung. Speichern Sie Passwörter gehasht mit einem langsamen, gesalzenen Algorithmus (bcrypt, argon2, scrypt) — niemals kodiert, und niemals mit Base64, das jeder in einer Zeile Code umkehren kann.

Warum ist Base64-kodierte Ausgabe immer rund 33 % größer als die Eingabe?

Weil die Kodierung jeweils 3 Byte (24 Bit) der Eingabe auf 4 Ausgabezeichen abbildet und jedes Ausgabezeichen nur 6 Bit Information trägt statt der 8 Bit eines Bytes — das ist ein festes 4/3-Erweiterungsverhältnis, das sich nicht mit dem Inhalt ändert. Eine 3-MB-Datei wird jedes Mal zu einer rund 4-MB-Base64-Zeichenkette.

Was ist der Unterschied zwischen Standard-Base64 und der "URL-sicheren" Variante?

Standard-Base64 verwendet + und / in seinem Alphabet, die beide in URLs und Dateipfaden reservierte Bedeutung haben, sodass eine URL-sichere Variante sie durch - und _ ersetzt (und die =-Auffüllung oft weglässt), damit die kodierte Zeichenkette ohne Escaping direkt in einer URL oder einem Dateinamen stehen kann. Dieses Tool erkennt und dekodiert beide Varianten automatisch.

Kommentare

Noch keine Kommentare — schreiben Sie den ersten!

Ähnliche Tools