Base64-Konverter: Text und Dateien kodieren, dekodieren und prüfen
So nutzen Sie den Base64-Konverter auf s-edv.com: Text und Dateien umwandeln, Base64url, PEM und Data-URIs erkennen, Fehlermeldungen verstehen und Ergebnisse im Terminal gegenprüfen.
WerbelinksMit * markierte Links sind Werbelinks: Bei einem Kauf erhalten wir eine Provision, der Preis bleibt gleich. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen. Mehr dazu

Base64 begegnet Administratoren ständig: im Header einer HTTP-Basic-Anmeldung, in Kubernetes-Secrets, in JSON Web Tokens, in PEM-Zertifikaten und in E-Mail-Anhängen. Mit dem Base64-Konverter auf s-edv.com wandeln Sie Text und Dateien live in beide Richtungen um, erkennen Base64url, PEM-Rahmen und Data-URIs automatisch und laden dekodierte Dateien wieder herunter. Diese Anleitung zeigt die Bedienung Schritt für Schritt, erklärt die Varianten und Fehlermeldungen und zeigt, wie Sie jedes Ergebnis im Terminal gegenprüfen. Sie richtet sich an Admins und Entwickler in kleinen und mittleren Unternehmen.
Voraussetzungen
- ein aktueller Browser mit aktiviertem JavaScript
- die Daten, die Sie umwandeln möchten: Text, eine Base64-Zeichenkette aus Log, Konfiguration oder Header, oder eine Datei bis 25 MB
- für die Gegenprobe ein Linux- oder macOS-Terminal mit
base64(GNU coreutils) oderopenssl, unter Windows funktioniert das in WSL oder Git Bash - Grundwissen zu Zeichenkodierung: Ein Zeichen wie „ü“ belegt in UTF-8 zwei Byte, ein Emoji vier
Kurz zur Technik: Base64 nach RFC 4648 stellt beliebige Bytes mit 64 druckbaren Zeichen dar. Je drei Byte (24 Bit) werden in vier Gruppen zu sechs Bit zerlegt, jede Gruppe wird zu einem Zeichen aus A bis Z, a bis z, 0 bis 9, + und /. Geht die Länge nicht in Dreierblöcken auf, füllt „=“ die letzte Gruppe auf. Deshalb wachsen Daten um rund ein Drittel. Ein Server ist für das Tool nicht nötig.
Schritt 1: Tool öffnen und Aufbau kennenlernen
Öffnen Sie https://s-edv.com/tools/base64. Oben steht der Bereich „Text ⇄ Base64“ mit dem Hinweis „live in beide Richtungen“. Darunter finden Sie die Schalter „URL-sicher (Base64url)“, „Leerzeichen und Umbrüche tolerieren“ und „Fehlendes Padding tolerieren“, die Auswahl „Zeilenumbruch“ mit „keiner“, „nach 76 Zeichen (MIME)“ und „nach 64 Zeichen (PEM)“ sowie die Vorlagen „Text mit Umlauten“, „Basic-Auth“, „JWT-Header (Base64url)“, „PNG-Bild“ und „Data-URI“. Die beiden tolerieren-Schalter sind ab Werk aktiv, „URL-sicher“ ist aus.
Links liegt das Feld „Text (UTF-8)“, rechts „Base64“, jeweils mit Kopier- und Download-Schaltfläche. Weiter unten folgt „Datei → Base64“. Die Seite gibt an, dass alles im Browser läuft. Beim Durchklicken aller Vorlagen kam im Test keine einzige neue Netzwerkanfrage hinzu.
Verifizieren: Klicken Sie auf „Basic-Auth“. Links steht benutzer:passwort, rechts YmVudXR6ZXI6cGFzc3dvcnQ=, darunter die Statuszeile „Text → Base64“ mit „17 B → 24 Zeichen (+41,2 %)“.
Schritt 2: Text in Base64 umwandeln
Schreiben oder fügen Sie den Text links ein. Die Statuszeile zeigt Zeichen, Byte und den Größenzuwachs. Die Vorlage „Text mit Umlauten“ zeigt, warum Byte und Zeichen auseinanderlaufen: der Beispielsatz mit Umlauten, Gedankenstrich, Eurozeichen und Emoji hat 29 Zeichen, aber 42 Byte, das Ergebnis ist 56 Zeichen lang.
Ein typischer Einsatz ist ein Basic-Auth-Header zum Testen einer API. Aus dem Ergebnis bauen Sie den Header so:
curl -H 'Authorization: Basic YmVudXR6ZXI6cGFzc3dvcnQ=' https://api.example.com/status
Curl kann das auch selbst mit -u benutzer:passwort. Der Weg über das Tool hilft, wenn Sie einen bestehenden Header aus einem Log oder einer Proxy-Konfiguration nachvollziehen müssen. Tragen Sie echte Produktivpasswörter trotzdem nur ein, wenn es nötig ist, und schließen Sie den Tab danach.
Für Kubernetes-Secrets im Feld data oder für Werte in YAML-Dateien lassen Sie „Zeilenumbruch“ auf „keiner“. Die anderen Einstellungen dienen MIME (76 Zeichen je Zeile) und PEM (64 Zeichen je Zeile). Ein Test mit 100 Byte ergab mit MIME Zeilen von 76 und 60 Zeichen, mit PEM 64, 64 und 8 Zeichen. Die PEM-Einstellung bricht nur um, Rahmenzeilen wie -----BEGIN …----- fügt sie nicht hinzu.
Verifizieren: Kodieren Sie dieselbe Zeichenkette im Terminal. Wichtig ist printf statt echo, sonst kodiert die Shell den Zeilenumbruch mit:
printf '%s' 'geheim' | base64 # Z2VoZWlt
echo 'geheim' | base64 # Z2VoZWltCg== (mit Zeilenumbruch)
Das Tool liefert für „geheim“ ebenfalls Z2VoZWlt.
Schritt 3: Base64 dekodieren und Fehler erkennen
Fügen Sie die Zeichenkette rechts in das Feld „Base64“ ein, links erscheint der Text. Das Tool erkennt mehrere Formen selbst:
- Base64url mit
-und_, gemeldet als „Base64url erkannt (- und _).“ - Data-URIs wie
data:text/plain;charset=utf-8;base64,…, gemeldet als „Data-URI erkannt (text/plain).“ - PEM-Blöcke: Bei einem Block mit
-----BEGIN TEST-----meldete das Tool „PEM-Rahmen „TEST“ entfernt.“ und dekodierte den Inhalt - fehlendes Padding: Aus
Zgwurde „f“ mit dem Hinweis „Das Padding (=) fehlte und wurde ergänzt.“
Echte Fehler meldet das Tool unter „Kein gültiges Base64“ mit Position. Ein Ausrufezeichen ergab „Ungültiges Zeichen „!“ an Position 5.“ mit einer Erklärung des erlaubten Alphabets. Bei Zg= lautete die Meldung „Padding unvollständig: Am Ende müssen 2 „=“ stehen.“, bei drei Gleichheitszeichen „Zu viele Padding-Zeichen (=) am Ende.“
Schalten Sie die beiden tolerieren-Schalter aus, wird das Tool zum strengen Prüfer. Dann ergab Zg „Padding fehlt: Am Ende fehlen zwei „=“. Schalten Sie „Fehlendes Padding tolerieren“ ein.“ und ein Wert mit Leerzeichen „Leerzeichen oder Zeilenumbruch an Position 5. Schalten Sie „Leerzeichen und Umbrüche tolerieren“ ein.“ Das ist praktisch, wenn ein Programm einen Wert ablehnt und Sie wissen wollen, ob er exakt dem Standard entspricht.
Verifizieren: Dekodieren Sie im Terminal mit printf '%s' 'WERT' | base64 -d. GNU base64 lehnt ungültige Zeichen mit base64: invalid input und Exit-Code 1 ab, genau wie das Tool in diesem Fall einen Fehler meldet. Base64url wandeln Sie mit basenc --base64url -d zurück.
Schritt 4: Base64url für URLs, Dateinamen und JWT verwenden
In URLs, Cookies und Dateinamen haben + und / eine eigene Bedeutung. Base64url (RFC 4648, Abschnitt 5) ersetzt sie durch - und _. Aktivieren Sie „URL-sicher (Base64url)“: Aus <<???>> wird dann PDw_Pz8-Pg statt PDw/Pz8+Pg==, die Statuszeile ergänzt „· Base64url“. Das Tool lässt in diesem Modus das Padding weg, wie es bei JSON Web Tokens üblich ist. GNU basenc --base64url setzt das Padding dagegen und liefert PDw_Pz8-Pg==. Beide Formen sind gültig. Ob ein Zielsystem Padding erwartet, steht in dessen Dokumentation.
Die Vorlage „JWT-Header (Base64url)“ dekodiert den Kopfteil eines Tokens zu {"alg":"HS256","typ":"JWT"}. Ein ganzes Token besteht aus drei solchen Teilen, getrennt durch Punkte. Für die Analyse vollständiger Tokens gibt es auf s-edv.com einen eigenen JWT-Decoder. Denken Sie daran: Der Inhalt eines JWT ist für jeden lesbar, nur die Signatur schützt vor Veränderung.
Verifizieren: Im Terminal liefert printf '%s' '{"alg":"HS256","typ":"JWT"}' | basenc --base64url | tr -d '=' dieselbe Zeichenkette wie das Tool.
Schritt 5: Dateien kodieren und dekodierte Dateien herunterladen
Im Bereich „Datei → Base64“ ziehen Sie eine Datei auf das Feld „Datei hierher ziehen oder klicken“. Die Grenze liegt laut Seite bei 25 MB, die Datei bleibt auf dem Gerät. Unter „Ausgabe“ wählen Sie „Reines Base64“ oder „Data-URI“. Der Hinweis darunter erklärt: „URL-sicher“ und „Zeilenumbruch“ von oben gelten auch hier, außer für Data-URIs.
Unter „Ergebnis“ zeigt das Tool Dateiname, Größe, MIME-Typ, die Länge des Ergebnisses und den Zuwachs. Eine Textdatei mit 12 Byte ergab 16 Zeichen und „+33,3 % gegenüber der Datei“, als Data-URI 39 Zeichen und „+225 %“, weil das Präfix data:text/plain;base64, bei sehr kleinen Dateien stark ins Gewicht fällt. Eine Datei mit 26 MB lehnte das Tool mit „Datei zu groß (26 MB, höchstens 25 MB)“ ab.
Umgekehrt erkennt das Tool Binärdaten beim Dekodieren. Die Vorlage „PNG-Bild“ meldete ein PNG-Bild mit 91 B, dazu eine „Hex-Ansicht“ und die Schaltfläche „Datei herunterladen (.png)“, die eine Datei dekodiert.png speichert. Bei Bytes ohne bekannten Typ heißt es „Binärdaten“ mit „kein gültiger UTF-8-Text“ und der Schaltfläche „Datei herunterladen (.bin)“. Mit „Trotzdem als Text anzeigen“ erzwingen Sie die Textansicht.
Ein Praxisfall: Ein Monitoring-System liefert einen Anhang nur als Base64 im JSON. Fügen Sie den Wert ein, und das Tool erkennt am Dateikopf, ob es ein PNG, PDF oder ZIP ist.
Verifizieren: Dekodieren Sie dieselbe Zeichenkette im Terminal und prüfen Sie den Typ:
base64 -d bild.b64 > bild.png
file bild.png # PNG image data, 16 x 16, …
sha256sum bild.png dekodiert.png
Beide Prüfsummen müssen gleich sein.
Typische Fehler
- Anmeldung schlägt fehl, obwohl das Passwort stimmt: Der Wert wurde mit
echostattprintferzeugt und enthält einen Zeilenumbruch. Dekodieren Sie ihn im Tool: Steht links ein Umbruch am Ende, ist das die Ursache. - „Ungültiges Zeichen … an Position …“: Beim Kopieren sind Anführungszeichen, ein Doppelpunkt oder der Präfix
Basicmitgekommen. Entfernen Sie alles außer dem eigentlichen Wert. - „Padding unvollständig“ oder „Zu viele Padding-Zeichen“: Der Wert wurde abgeschnitten oder doppelt ergänzt. Holen Sie ihn neu aus der Quelle.
- Zeichensalat statt Text: Es handelt sich um eine Datei oder um Text in einer anderen Kodierung als UTF-8, zum Beispiel Windows-1252. Laden Sie die Datei herunter und prüfen Sie sie mit
file. - Zielsystem lehnt den Wert ab: Es erwartet Standard-Base64, Sie haben Base64url erzeugt, oder umgekehrt. Prüfen Sie den Schalter „URL-sicher (Base64url)“ und das Padding.
- Zeilenumbrüche im Ergebnis: „Zeilenumbruch“ steht auf MIME oder PEM. Für Konfigurationsdateien und Header wählen Sie „keiner“. Im Terminal entspricht das
base64 -w 0.
Häufige Fragen
Ist Base64 eine Verschlüsselung?
Nein. Base64 macht Daten nur transportfähig. Ein Basic-Auth-Header ohne HTTPS oder ein Kubernetes-Secret im Git-Repository ist faktisch Klartext. Geheimnisse gehören in eine Secret-Verwaltung, wie sie die Anleitung Docker Compose absichern beschreibt.
Werden meine Daten hochgeladen?
Laut Seite nein, Dateien werden im Browser gelesen. Im Test entstanden beim Umwandeln keine Netzwerkanfragen. Die Seite nennt als Grenzen 25 MB für Dateien, 5 MB im Textfeld und 10 MB im Base64-Feld.
Was bedeuten die Gleichheitszeichen am Ende?
Sie sind Padding und füllen die letzte Vierergruppe auf. Es sind höchstens zwei. Aus „f“ wird Zg==, aus „foo“ ohne Padding Zm9v.
Wie gebe ich Zugangsdaten sicher weiter?
Nicht als Base64 in einer E-Mail. Nutzen Sie einen verschlüsselten Dienst wie PrivateBin oder einen Passwortmanager.
Lohnen sich Data-URIs für Bilder?
Nur für sehr kleine Symbole. Größere Bilder wachsen um rund ein Drittel und lassen sich vom Browser nicht getrennt zwischenspeichern. Eine Content-Security-Policy muss data: für Bilder zudem ausdrücklich erlauben.
Testumfang
Wir haben alle Vorlagen, die Formatschalter, die Zeilenumbrüche, den strengen Prüfmodus, PEM- und Data-URI-Erkennung sowie den Datei-Upload samt 25-MB-Grenze im Browser ausprobiert. Jedes Ergebnis haben wir mit GNU base64, basenc und Python nachgerechnet, alle Werte stimmten überein, das dekodierte PNG erkannte file korrekt. Sehr große Dateien nahe der Grenze haben wir nicht vollständig durchgerechnet.
Fazit
Der Base64-Konverter ist mehr als ein einfaches Umwandlungsfeld: Er erkennt Base64url, PEM und Data-URIs, meldet Fehler mit Position und macht aus dekodierten Bytes wieder eine Datei. Für die Fehlersuche bei Headern, Secrets und Anhängen spart das Zeit. Behalten Sie dabei im Kopf, dass Base64 nichts schützt, und prüfen Sie kritische Werte im Terminal gegen.
Weiterführende Anleitungen und Quellen
- Docker Compose absichern: Secrets, Healthchecks, Non-Root
- PrivateBin: verschlüsselter Pastebin für Zugangsdaten
- Let’s Encrypt mit certbot: TLS-Zertifikate
- RFC 4648: The Base16, Base32, and Base64 Data Encodings
- RFC 7468: Textual Encodings of PKIX Structures (PEM)
- RFC 2397: The „data“ URL scheme
- RFC 7617: The „Basic“ HTTP Authentication Scheme
- GNU coreutils: base64


