Base64 kodieren & dekodieren
Wandeln Sie Text oder eine Datei in Base64 um oder dekodieren Sie Base64 wieder in lesbaren Text. Unicode wird korrekt verarbeitet, das URL-sichere Alphabet ist nur einen Klick entfernt, und beim Dekodieren wird jedes der beiden Alphabete akzeptiert, mit oder ohne Padding.
0 Zeichen · 0 Wörter · 0 Zeilen
0 Zeichen · 0 Wörter · 0 Zeilen
Läuft komplett in diesem Browser-Tab. Ihr Text wird weder hochgeladen noch gespeichert.
Das Base64-Alphabet
Index → Zeichen nach RFC 4648. Die hervorgehobenen letzten beiden unterscheiden sich in der URL-sicheren Variante: 62 ist + oder -, 63 ist / oder _.
- 0A
- 1B
- 2C
- 3D
- 4E
- 5F
- 6G
- 7H
- 8I
- 9J
- 10K
- 11L
- 12M
- 13N
- 14O
- 15P
- 16Q
- 17R
- 18S
- 19T
- 20U
- 21V
- 22W
- 23X
- 24Y
- 25Z
- 26a
- 27b
- 28c
- 29d
- 30e
- 31f
- 32g
- 33h
- 34i
- 35j
- 36k
- 37l
- 38m
- 39n
- 40o
- 41p
- 42q
- 43r
- 44s
- 45t
- 46u
- 47v
- 48w
- 49x
- 50y
- 51z
- 520
- 531
- 542
- 553
- 564
- 575
- 586
- 597
- 608
- 619
- 62+ -
- 63/ _
Wie lang die Ausgabe wird
Je 3 Eingabe-Bytes werden zu 4 Zeichen; eine letzte Gruppe aus 1 oder 2 Bytes wird in Standard-Base64 mit = aufgefüllt und in der URL-sicheren Form nicht aufgefüllt.
| Eingabe | Bytes | Standard | URL-sicher | Länge |
|---|---|---|---|---|
U | 1 | VQ== | VQ | 4 |
Ul | 2 | VWw= | VWw | 4 |
Ult | 3 | VWx0 | VWx0 | 4 |
UltK | 4 | VWx0Sw== | VWx0Sw | 8 |
UltKi | 5 | VWx0S2k= | VWx0S2k | 8 |
UltKit | 6 | VWx0S2l0 | VWx0S2l0 | 8 |
Was Base64 macht
Base64, definiert in RFC 4648, schreibt beliebige Bytes mit 64 druckbaren ASCII-Zeichen: A–Z, a–z, 0–9, + und /. Jede Gruppe aus drei Bytes (24 Bit) wird in vier 6-Bit-Zahlen zerlegt, und jede Zahl wählt ein Zeichen aus dem Alphabet aus. Ist die Eingabelänge kein Vielfaches von drei, wird die letzte Gruppe mit einem oder zwei =-Zeichen aufgefüllt. Das Ergebnis ist immer etwa 33 % größer als die Eingabe: 4 Zeichen für je 3 Bytes.
Es gibt Base64, weil viele Übertragungswege für Text gebaut wurden. E-Mail (MIME), data:-URLs in HTML und CSS, JSON-Felder mit Bildern oder Zertifikaten und HTTP-Basic-Authentifizierungs-Header nutzen alle Base64, um Binärdaten sicher zu übertragen. Base64 ist keine Verschlüsselung und verbirgt nichts; zum Dekodieren ist kein Schlüssel nötig.
Unicode und die URL-sichere Variante
Base64 kodiert Bytes, nicht Buchstaben, deshalb muss Text zuerst in Bytes umgewandelt werden. Dieses Tool verwendet immer UTF-8, die Kodierung, auf der das Web läuft: é wird zu zwei Bytes, ein Emoji zu vier. Die im Browser eingebaute Funktion btoa allein löst bei jedem Zeichen oberhalb von U+00FF einen Fehler aus, weshalb einfache Encoder bei Umlauten und Emoji scheitern; hier läuft der Text zuerst durch TextEncoder, und beim Dekodieren kehrt TextDecoder den Vorgang um. Sind die dekodierten Bytes kein gültiges UTF-8 (etwa ein Bild oder eine ZIP-Datei), zeigt das Tool sie hexadezimal an statt als unleserlichen Text.
Standard-Base64 verwendet + und /, die in URLs und Dateinamen eine besondere Bedeutung haben. Das URL-sichere Alphabet aus Abschnitt 5 von RFC 4648 ersetzt sie durch - und _, und das Auffüllen entfällt meist. JSON Web Tokens verwenden genau diese Form. Der Decoder akzeptiert beide Alphabete und fehlendes Auffüllen, Sie können also beides einfügen.
Dateien und Bilder kodieren
Wählen Sie eine Datei aus, dann liest das Tool sie lokal mit FileReader und gibt ihren Base64-Wert zurück, oder eine vollständige data:-URL mit dem MIME-Typ der Datei, bereit zum Einfügen in ein img-Tag oder einen CSS-Hintergrund. Eingebettete Bilder sparen eine HTTP-Anfrage, werden aber um ein Drittel größer und lassen sich nicht separat zwischenspeichern, daher eignen sie sich eher für kleine Icons als für Fotos. Für Bilder mit Vorschau und fertigen HTML- und CSS-Schnipseln nutzen Sie Bild in Base64.
Häufig gestellte Fragen
- Warum ist die Base64-Ausgabe länger als meine Eingabe?
- Aus je 3 Bytes werden 4 Zeichen, die Ausgabe ist also etwa 4/3 so groß wie die Eingabe, plus bis zu zwei Füllzeichen. Text mit Nicht-ASCII-Zeichen wird noch länger, weil UTF-8 zwei bis vier Bytes pro Zeichen braucht.
- Was bedeuten die =-Zeichen am Ende?
- Das ist das Auffüllen (Padding). Es sorgt dafür, dass die Ausgabelänge ein Vielfaches von vier ist, wenn die Eingabelänge kein Vielfaches von drei ist. Ein = bedeutet, dass die letzte Gruppe zwei Bytes hatte, zwei = bedeuten, dass sie ein Byte hatte.
- Warum schlägt das Dekodieren mit einem Fehler wegen ungültiger Zeichen fehl?
- Die Eingabe enthält etwas außerhalb des Alphabets, etwa ein Leerzeichen mitten im Wort, ein Anführungszeichen oder ein % aus der URL-Kodierung. Zeilenumbrüche und fehlendes Auffüllen werden toleriert, andere Zeichen nicht.
- Ist es sicher, ein Passwort in Base64 zu kodieren?
- Base64 bietet keinerlei Schutz. Die HTTP-Basic-Authentifizierung sendet user:password in Base64, weshalb sie nur über HTTPS verwendet werden darf. Schützen Sie Geheimnisse mit echter Verschlüsselung oder Hashing.
- Was ist der Unterschied zwischen Base64 und Base64url?
- Nur zwei Zeichen und das Auffüllen: Base64url verwendet - und _ statt + und / und lässt = meist weg, sodass das Ergebnis ohne Maskierung in URLs und Dateinamen stehen kann.