Base64 kodieren / dekodieren
Base64 kodieren und dekodieren, UTF-8-sicher, mit URL-sicherer Variante.
Über dieses Tool
Wandle Text in Base64 um und zurück. Verarbeitet jeden Unicode-Text korrekt und unterstützt das URL-sichere Alphabet (base64url), das in JWTs und URLs verwendet wird.
So verwendest du es
- Wähle Kodieren, um Text in Base64 umzuwandeln, oder Dekodieren, um Base64 wieder in Text umzuwandeln.
- Füge deine Eingabe ein. Unicode-Text wie Akzente oder Emojis wird korrekt verarbeitet.
- Für Tokens und URLs aktivierst du URL-sicher, um - und _ statt + und / zu verwenden.
- Kopiere das Ergebnis oder klicke auf Tauschen, um die Richtung umzukehren.
Fragen
- Ist Base64 eine Verschlüsselung?
- Nein. Base64 ist eine Kodierung, die jeder sofort umkehren kann. Verwende es nie, um Passwörter oder Geheimnisse zu verbergen.
- Was ist der Unterschied zwischen Base64 und Base64url?
- Base64url ersetzt + durch - und / durch _ und lässt meist das =-Padding weg, sodass sich das Ergebnis in URLs und Dateinamen verwenden lässt. JWTs nutzen Base64url.
- Warum schlägt das Dekodieren fehl?
- Entweder enthält die Eingabe Zeichen außerhalb des Base64-Alphabets, oder sie ergibt beim Dekodieren Binärdaten statt UTF-8-Text, etwa ein Bild oder eine komprimierte Datei.
- Warum ist der kodierte Text länger?
- Base64 stellt je 3 Bytes mit 4 Zeichen dar, daher ist die Ausgabe etwa 33 % größer als die Eingabe.
- Was bedeutet das = am Ende von Base64?
- Das ist Padding. Base64-Ausgaben sind immer ein Vielfaches von vier Zeichen lang; ein = bedeutet, dass die letzte Gruppe zwei Bytes enthielt, == bedeutet ein Byte. Padding trägt keine Daten, deshalb lässt base64url es meist weg. Dieses Tool ergänzt fehlendes Padding vor dem Dekodieren.
- Wie kodiere ich Base64 auf der Kommandozeile?
- Unter Linux und macOS liefert printf hello | base64 das Ergebnis aGVsbG8=. Vermeide ein einfaches echo, das einen Zeilenumbruch anhängt und stattdessen aGVsbG8K ergibt. Zum Dekodieren nutzt du base64 -d, auf älteren macOS-Versionen base64 -D. In PowerShell verwendest du [Convert]::ToBase64String mit den Bytes deines Texts.
- Wie dekodiere ich ein Base64-Bild oder -PDF?
- Dieses Tool dekodiert in UTF-8-Text, bei Binärdaten wie einem PNG oder PDF erscheint also ein Fehler statt einer Datei. Speichere den Base64-String in einer Datei und führe im Terminal base64 -d input.txt > image.png aus. Entferne vorher ein eventuelles Präfix data:image/png;base64, weil es nicht zu den kodierten Daten gehört.
Was ist Base64-Kodierung und wie funktioniert sie?
Base64 stellt Binärdaten mit 64 druckbaren ASCII-Zeichen dar: A–Z, a–z, 0–9, + und /. Das Standardalphabet ist in RFC 4648 definiert. Der Encoder liest die Eingabe in Blöcken zu drei Bytes, teilt diese 24 Bit in vier Gruppen zu 6 Bit und bildet jede Gruppe auf ein Zeichen ab. So werden aus den drei Bytes von „Man“ die Zeichen „TWFu“. Ist die Eingabelänge kein Vielfaches von drei, füllt =-Padding die letzte Gruppe auf.
Base64 gibt es, weil viele Kanäle für Text gebaut wurden, nicht für rohe Bytes. E-Mail-Anhänge (MIME), data:-URLs in HTML und CSS, Header für HTTP Basic Authentication, PEM-Zertifikate und JSON-Felder mit Bildern setzen alle darauf. Es ist eine Transportkodierung, keine Kompression und keine Sicherheitsmaßnahme. Dekodieren geht sofort und braucht keinen Schlüssel, behandle also alles, was du Base64-kodierst, als Klartext, den jeder lesen kann.
Base64 in Text dekodieren – und warum UTF-8 wichtig ist
Um Base64 online zu dekodieren, wähle „Dekodieren“ und füge den String ein. Leerzeichen und Zeilenumbrüche werden vorher entfernt, umbrochene Ausgaben aus einer PEM-Datei oder E-Mail lassen sich also problemlos dekodieren. Fehlendes =-Padding wird automatisch ergänzt, und auch die URL-sicheren Zeichen - und _ werden akzeptiert, du musst also nicht wissen, welche Variante du vor dir hast. Die dekodierten Bytes werden dann als UTF-8-Text gelesen.
UTF-8 ist wichtig, weil Base64 Bytes kodiert, keine Zeichen. Das im Browser eingebaute btoa() akzeptiert nur Latin-1, bei Text mit ✓ oder einem Emoji wirft es also einen InvalidCharacterError. Dieses Tool wandelt Text zuerst in UTF-8-Bytes um, sodass Akzente und Emoji den Roundtrip korrekt überstehen: „é“ wird zu den zwei Bytes C3 A9 und als „w6k=“ kodiert. Sind die dekodierten Bytes kein gültiges UTF-8, etwa bei einem Bild oder einer gzip-Datei, bekommst du eine Fehlermeldung statt Zeichensalat.
Base64 vs. Hex vs. URL-Kodierung: Was nimmt man wann?
Base64, Hex und Prozentkodierung machen aus Daten sicheren Text, eignen sich aber für unterschiedliche Aufgaben. Hex braucht zwei Zeichen pro Byte, die Ausgabe wird also doppelt so groß, ist dafür aber leicht lesbar und Standard für Hashes und Prüfsummen. Base64 braucht vier Zeichen für je drei Bytes, also etwa 33 % Overhead, und ist damit die bessere Wahl für größere binäre Payloads wie Bilder, Schlüssel oder Dateiinhalte in JSON.
Die Prozentkodierung, wie sie in URLs verwendet wird, ist für Text mit einigen reservierten Zeichen gedacht, nicht für Binärdaten. Muss ein Base64-Wert in eine URL, einen Query-String oder einen Dateinamen, nimm das base64url-Alphabet, statt + und / prozentzukodieren. Aktiviere hier beim Kodieren „URL-sicher“: - und _ ersetzen + und /, und das =-Padding entfällt – genau das Format, das JWTs verwenden. Für die Prozentkodierung selbst nimm das URL-Tool.
Funktioniert etwas nicht, oder sieht ein Ergebnis falsch aus? Ein Problem mit diesem Tool melden