Was Base64 ist
Base64 ist eine Methode, beliebige Daten nur mit 64 sicheren Zeichen zu schreiben: den Buchstaben A bis Z und a bis z, den Ziffern 0 bis 9 und den Symbolen + und /. Es wurde für Systeme entwickelt, die nur reinen Text transportieren können, etwa E-Mail und manche Webformulare. Mit Base64 kommen ein Bild, eine PDF oder Text in jeder Sprache unbeschädigt durch diese Systeme.
Base64 begegnet dir an vielen Stellen: in E-Mail-Anhängen, in Bildern, die als Data-URL in CSS eingebettet sind, in JSON Web Tokens, API-Schlüsseln, Headern für HTTP Basic Authentication und in Konfigurationsdateien.
So nutzt du dieses Base64-Tool
Text kodieren. Tippe Text in das Feld Text oder füge ihn ein. Das Base64 erscheint beim Tippen im rechten Feld. Klicke auf Kopieren, um es zu übernehmen.
Base64 dekodieren. Füge Base64 in das rechte Feld Base64 ein. Der ursprüngliche Text erscheint links. Leerzeichen, Zeilenumbrüche, fehlendes Auffüllen und ein Präfix data:...;base64, werden alle akzeptiert.
Optionen.
- URL-sicher (- und _) tauscht
+gegen-und/gegen_und entfernt das Auffüllzeichen=. Nimm das für Links, Cookies und Dateinamen. - Zeilen nach 76 umbrechen teilt die Ausgabe in Zeilen mit 76 Zeichen auf, das Layout für E-Mails (MIME).
Leeren leert beide Felder.
Datei in Base64. Wähl eine Datei bis 25 MB. Wähl Nur Base64 für den reinen String oder Data-URL für einen fertigen Wert wie data:image/png;base64,.... Klicke dann auf Kopieren.
Base64 in Datei. Füge Base64 oder eine Data-URL ein. Das Tool erkennt verbreitete Typen wie PNG, JPEG, GIF, WebP, PDF und ZIP, schlägt einen Dateinamen vor und zeigt bei Bildern eine Vorschau. Klicke auf Datei herunterladen, um sie zu speichern.
So funktioniert Base64
Base64 liest die Eingabe in Blöcken von drei Bytes (24 Bit). Es teilt diese 24 Bit in vier Gruppen zu je 6 Bit. Jede 6-Bit-Gruppe ist eine Zahl von 0 bis 63, und diese Zahl wählt ein Zeichen aus dem Base64-Alphabet. Drei Bytes rein, vier Zeichen raus. Deshalb ist Base64 etwa ein Drittel größer als die Eingabe.
Text wird zuerst mit UTF-8 in Bytes umgewandelt. Deshalb funktionieren hier Umlaute, Akzente und Emojis: café wird zu 5 Bytes, und diese Bytes werden kodiert. Bei deutschen Texten ist das wichtig, denn jedes ä, ö, ü und ß belegt in UTF-8 zwei Bytes. Manche älteren Tools nutzen direkt die Browserfunktion btoa, die bei jedem Zeichen außerhalb von Latin-1 scheitert. Andere kodieren Umlaute stillschweigend als Latin-1, und beim Dekodieren mit UTF-8 erscheinen dann falsche Zeichen.
Beispiele
| Eingabe | Base64 | URL-sicher |
|---|---|---|
M |
TQ== |
TQ |
Ma |
TWE= |
TWE |
Man |
TWFu |
TWFu |
Hello, World! |
SGVsbG8sIFdvcmxkIQ== |
SGVsbG8sIFdvcmxkIQ |
café |
Y2Fmw6k= |
Y2Fmw6k |
Zoë |
Wm/Dqw== |
Wm_Dqw |
<?> |
PD8+ |
PD8- |
Die letzten beiden Zeilen zeigen, warum es die URL-sichere Form gibt. Ein / oder + in einem Link kann ihn kaputt machen, _ und - sind dagegen sicher.
Ein deutsches Beispiel: „Grüße aus Köln“ wird zu R3LDvMOfZSBhdXMgS8O2bG4=. Der Text hat 14 Zeichen, wegen ü, ß und ö aber 17 Bytes, und daraus werden 24 Base64-Zeichen.
Tipps und Grenzen
- Base64 ist keine Sicherheit. Es versteckt nichts. Behandle Base64-Text genauso wie die ursprünglichen Daten.
- Lies die Fehlermeldung. Fügst du etwas mit einem Zeichen wie
*ein, sagt dir das Tool, welches Zeichen kein gültiges Base64 ist. - Binärdaten brauchen eine Datei. Sind die dekodierten Bytes kein gültiger UTF-8-Text, sagt das Tool das. Füge dasselbe Base64 dann in Base64 in Datei ein und lade es stattdessen herunter.
- Die Größe wächst. Ein Bild mit 3 MB wird zu etwa 4 MB Base64. Eingebettete Data-URLs sind für kleine Icons praktisch, für große Fotos aber langsam.
- Auffüllen ist beim Dekodieren optional. Das Tool ergänzt fehlende
=-Zeichen für dich.
Andere Wege, Base64 zu kodieren
Kommandozeile (macOS und Linux). echo -n 'Hello, World!' | base64 gibt SGVsbG8sIFdvcmxkIQ== aus. Mit base64 -d (oder base64 -D auf älteren macOS-Versionen) dekodierst du. Lässt du -n weg, wird auch ein abschließender Zeilenumbruch kodiert.
Windows. certutil -encode input.txt output.txt kodiert eine Datei. In PowerShell kodiert [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes('Hello, World!')) Text.
JavaScript (Node). Buffer.from('Hello, World!').toString('base64') liefert SGVsbG8sIFdvcmxkIQ==, und Buffer.from('SGVsbG8=', 'base64').toString() liefert Hello.
Python. base64.b64encode('Hello, World!'.encode()).decode() liefert dasselbe Ergebnis. Beachte, dass base64.urlsafe_b64encode das Auffüllzeichen = behält, Zoë wird also zu Wm_Dqw==.
Ähnliche Tools
Um Text für eine Webadresse sicher zu machen, nimm URL kodieren und dekodieren. Um die rohen Bytes hinter deinem Text zu sehen, probier Hex in Text umwandeln oder das Tool zur UTF-8-Kodierung.