Base64
Base64 kodieren oder dekodieren.
Alle Berechnungen erfolgen lokal in Ihrem Browser. Es werden keine Daten an einen Server gesendet.
Die Ergebnisse dienen zur Information. Überprüfen Sie sie anhand anderer Quellen.
Base64 verstehen
Base64 schreibt beliebige Binärdaten mit 64 druckbaren Zeichen um, damit sie durch Kanäle passen, die nur Text annehmen — E-Mail-Text, JSON-Strings, data:-URLs, HTTP-Header. Es ist ein Transportformat, keine Sicherheitsmaßnahme.
So wird gerechnet
- Nimmt die Eingabe in Blöcken von drei Bytes (24 Bit) und teilt diese 24 Bit in vier Gruppen zu je sechs.
- Jede 6-Bit-Gruppe ist eine Zahl von 0 bis 63 und dient als Index im Alphabet A–Z, a–z, 0–9, + und /.
- Ist die Eingabelänge kein Vielfaches von drei, wird die Ausgabe mit einem oder zwei = aufgefüllt, damit das Ergebnis immer ein Vielfaches von vier ist.
- Die URL-sichere Variante ersetzt + und / durch - und _, weil + und / innerhalb einer URL eine eigene Bedeutung haben.
3 Bytes (24 Bit) → 4 × 6-Bit-Gruppen → 4 Alphabetzeichen Ausgabelänge = 4 × ceil(Eingabelänge / 3)
Rechenbeispiel
Kodierung der drei Zeichen Hi! — genau eine volle Gruppe, daher ohne Auffüllung.
- H = 0x48 = 01001000, i = 0x69 = 01101001, ! = 0x21 = 00100001
- aneinanderhängen: 010010000110100100100001
- in Sechsergruppen teilen: 010010 | 000110 | 100100 | 100001
- als Zahlen: 18, 6, 36, 33
- im Alphabet nachschlagen: 18→S, 6→G, 36→k, 33→h
Hi! wird zu SGkh. Vier Ausgabezeichen für drei Eingabebytes — das feste Verhältnis 4:3, durch das Base64 rund 33% größer ist als die transportierten Daten.
Das Ergebnis lesen
- Base64 ist keine Verschlüsselung und bietet keinerlei Schutz. Jeder dekodiert es sofort — diese Seite tut genau das. Verstecken Sie damit niemals ein Geheimnis.
- Rechnen Sie mit etwa 33% Zuwachs plus Auffüllung. Aus einer 10-MB-Datei werden kodiert rund 13,3 MB — deshalb blähen große, als data:-URL eingebettete Bilder eine Seite auf.
- Die =-Auffüllung trägt keine Daten. Manche Parser verlangen sie, manche lehnen sie ab; JWT entfernt sie vollständig.
- Kodiert werden Bytes, nicht Zeichen. Text muss zuerst in Bytes umgewandelt werden, und dieser Kodierer nutzt UTF-8 — derselbe String kann bei anderer Zeichenkodierung ein anderes Ergebnis liefern.
Häufige Fragen
- Ist Base64 eine Verschlüsselung?
- Nein. Verschlüsselung braucht einen Schlüssel und soll einem Angreifer standhalten; Base64 braucht nichts und lässt sich in Mikrosekunden umkehren. Wenn Sie einen Base64-String in einer Konfigurationsdatei finden, behandeln Sie seinen Inhalt als vollständig öffentlich.
- Warum enden manche Base64-Strings auf = oder ==?
- Weil die Eingabe kein Vielfaches von drei Bytes war. Ein übriges Byte erzeugt zwei Füllzeichen, zwei übrige Bytes eines. Die Auffüllung bringt die Ausgabe auf ein Vielfaches von vier.
- Was ist base64url und wann brauche ich es?
- Dieselbe Kodierung, bei der - und _ die Zeichen + und / ersetzen, sodass die Ausgabe ohne weiteres Escaping in einem URL-Pfad oder Query-String sicher ist. JWTs, OAuth-Parameter und viele APIs nutzen es.