
Base64: Text, Dateien und Bilder online kodieren und dekodieren
Text, Datei oder Bild im Browser nach Base64 wandeln (und zurück) — Data-URI, E-Mail-Anhang, JWT-Segment. 100 % lokal, keine Verschlüsselung.
Warum Base64 in jedem Stack auftaucht
Ein CSS-Hintergrundbild, das keine separate Datei laden darf, ein MIME-Anhang, der als ASCII reisen muss, ein JWT-Segment zwischen zwei Punkten, eine WordPress-Option, die serialisiert und dann in Base64 verpackt wurde: Das sind keine Verschlüsselungsprobleme. Es sind Transportprobleme. Der Online-Base64-Encoder und -Decoder macht aus Unicode-Text ein ASCII-sicheres Alphabet und zurück, komplett im Tab. Der Bild-zu-Base64-Konverter macht dasselbe für eine lokale PNG-, JPEG-, GIF-, WebP- oder SVG-Datei, als Data-URI oder als rohes Base64. Nichts wird hochgeladen. Base64 ist kein Hash, keine Verschlüsselung und kein TLS-Ersatz. Es ist ein Weg, Bytes durch Kanäle zu tragen, die nur Buchstaben, Ziffern, +, / und Padding akzeptieren. Diese Werkzeuge stehen gemeinsam im Kodierungs-Tools-Hub.
Wann Sie im Browser kodieren und wann nicht
Der Encoder ist ein Skalpell für eine Zeichenkette, die Sie einfügen können, kein CDN.
Hängt die Antwort an einer Datei, die der Browser nicht halten sollte, oder an Kryptografie, bleiben Sie in CI oder einem Secret-Manager.
Die Base64-Fehler, die einen Nachmittag kosten
Jeder, der die Zeichenkette lesen kann, kann sie dekodieren. Base64 hat keinen Schlüssel, keine Integritätsprüfung und keine Vertraulichkeit. Ein Token, das im Log undurchsichtig wirkt, ist nach einem einzigen Dekodieren Klartext. Wenn die Bytes geheim bleiben müssen, verschlüsseln Sie sie (oder legen Sie sie nicht in den Payload). Wenn sie authentisch bleiben müssen, signieren Sie sie mit einem HMAC oder einer JWT-Signatur und nicht mit Base64 selbst.
RFC 4648 definiert zwei Alphabete. Standard-Base64 nutzt + und / und behält üblicherweise das =-Padding. URL-sicheres Base64 (JWT, Cookies, Pfade) nutzt - und _ und lässt das Padding in der Regel weg. Die URL-safe-Option von FastMinify führt beide Ersetzungen aus und streicht beim Kodieren das Padding. Beim Dekodieren stellt der URL-safe-Modus das Standardalphabet und das Padding wieder her, während der Standardmodus die Zeichenkette unverändert an atob übergibt: atob toleriert fehlendes Padding, lehnt aber - und _ ab. Eine URL-safe-Zeichenkette bei ausgeschalteter Option ergibt daher einen Fehler wegen ungültiger Eingabe, eine Standard-Zeichenkette bei eingeschalteter Option wird dagegen trotzdem dekodiert, weil nur diese beiden Zeichen ersetzt werden.
Ein kompaktes JWT besteht aus drei Base64URL-Segmenten, die durch Punkte getrennt sind (header.payload.signature). Die Punkte sind kein Base64. Das Base64-Tool dekodiert eine Alphabet-Zeichenkette und kein Token mit Punkten. Die Fehlermeldung der Seite sagt es ausdrücklich: Nur die kodierten Zeichen einfügen, keine Punkte. Bei einem JWT kopieren Sie jeden Teil zwischen den Punkten oder öffnen den JWT-Decoder und lesen Header und Payload in einem Schritt.
Base64 bläht Binärdaten um etwa 33 % auf (3 Bytes werden zu 4 ASCII-Zeichen). Ein JPEG mit 200 KiB wird zu rund 267 KiB CSS. Das Bild lässt sich dann nicht mehr getrennt vom Stylesheet cachen und macht ein Stylesheet schwerer, das ohnehin das Rendern blockiert. Unter HTTP/2 sind zusätzliche Requests günstig, was den Hauptgrund für das Einbetten entfallen lässt. Data-URIs lohnen sich für winzige Icons, die sonst einen Request kosten würden. Sie verlieren bei Hero-Bildern, Produktfotos und allem, das Sie bereits als Datei minifizieren.
Standard-Base64, URL-safe oder Data-URI wählen
Die Bytes ändern sich nicht. Die Schreibweise schon. Standard-Base64 ist das, was E-Mail-MIME und die meisten APIs ausgeben. URL-sicheres Base64 brauchen JWTs, signierte Cookies und Pfadsegmente, damit + und / nicht mit Query-Syntax kollidieren. Eine Data-URI ist Standard-Base64 mit dem Präfix data:<mime>;base64,, damit ein Browser die Zeichenkette als Ressource behandelt.
Drei Werkzeuge, drei Eingaben. Der Text-Encoder wendet UTF-8 und dann Base64 auf eine Zeichenkette an, eingefügt oder aus einer Textdatei gelesen. Er interpretiert ein PNG nicht als Pixel. Der Bildkonverter liest die Dateibytes und prüft den MIME-Typ. PNG, JPEG, GIF, WebP und SVG werden akzeptiert, ein leerer MIME-Typ wird abgelehnt, statt erraten zu werden. Er begrenzt Dateien auf 32 MiB und gibt eine Data-URI oder rohes Base64 aus. Die Vorschau nutzt nur ein img-Element: SVG wird nie als Markup in das DOM eingefügt. Für SVG als CSS, mit Wahl zwischen utf-8 und Base64 und einem eigenen CSS-Ausschnitt, nutzen Sie SVG zu Data-URI im SVG-Hub. Dessen SVG-Eingabe ist auf 512 KiB begrenzt, eine andere Grenze für eine andere Aufgabe.
Entwickler werfen das durcheinander, weil alles eine Zeichenkette „sicherer“ macht. Sie lösen aber unterschiedliche Kollisionen. URL-Encode kodiert reservierte URI-Zeichen prozentual. HTML-Entities maskieren Markup, damit eine Zeichenkette in einem Attribut stehen kann. Ein Hash (SHA-256, HMAC) liefert Integrität oder Authentizität in einer Richtung; dafür gibt es die Hash- und HMAC-Werkzeuge im Kodierungs-Hub, nicht diesen Artikel. Base64 ändert nur, wie Bytes geschrieben werden.
Was Base64 wirklich mit Ihren Bytes macht
Base64 nimmt 24 Bits (3 Bytes) und schreibt sie als 4 Zeichen aus einem Alphabet mit 64 Symbolen. Deshalb ist die Ausgabe länger: 4/3, also etwa 33 % mehr, plus Padding, wenn die Eingabelänge kein Vielfaches von 3 ist. Dieser Aufschlag ist der Preis für ein Alphabet, das E-Mail, JSON-Strings und CSS übersteht. Das ist das Gegenteil von Minifizierung. Ist der Payload JSON, das Sie über HTTP ausliefern, minifizieren Sie das JSON zuerst und kodieren nur, wenn eine Hüllschicht ASCII verlangt; siehe den JSON-Minifizierungsleitfaden.
Vorher
Nachher
Das eingebaute btoa von JavaScript arbeitet mit einem Binärstring (Werte 0–255). Übergeben Sie ihm café, kodiert es stillschweigend das einzelne Latin-1-Byte für é statt der zwei UTF-8-Bytes; bei einem Emoji oder einem CJK-Zeichen wirft es einen Fehler. FastMinify kodiert die UTF-8-Bytes mit TextEncoder und anschließend Base64, nach demselben Vertrag wie Node Buffer.from(text, 'utf8').toString('base64'). Das Dekodieren kehrt das mit TextDecoder um. Emoji und CJK überstehen den Weg. Dekodieren Sie ein Blob, das nie UTF-8-Text war (ein PNG, ein Gzip-Stream), erhalten Sie Ersatzzeichen statt einer Datei. Ein solches Blob gehört zu image-to-base64 oder in einen Hex-Dump, nicht in ein Textfeld.
Vorher
Nachher
Ist die Bytelänge kein Vielfaches von 3, hängt Standard-Base64 = oder == an, damit die Länge der Zeichenkette ein Vielfaches von 4 ist. URL-safe-Kontexte (JWT, manche Cookies) lassen dieses Padding weg, weil = ein Trennzeichen in Query-Strings ist. Das URL-safe-Kodieren von FastMinify entfernt es, das URL-safe-Dekodieren setzt es vor atob wieder ein. Das Standard-Dekodieren braucht es nicht, weil atob fehlendes Padding toleriert. Klassische Beispiele aus der RFC: f → Zg==, fo → Zm8=, foo → Zm9v.
Vorher
Nachher
Text, Datei oder Bild im Tab kodieren
Öffnen Sie den Base64-Encoder/Decoder. Fügen Sie den Text ein oder wählen Sie eine Textdatei aus (die Grenze im Browser liegt bei 32 MiB, wie bei den anderen Dateiauswahlen der Website). Wählen Sie Kodieren oder Dekodieren. Lassen Sie die Option URL-sicher Base64 (URL-safe) für MIME, Data-URI-Payloads und die meisten API-Beispiele ausgeschaltet. Schalten Sie sie für JWT-Segmente, signierte Cookie-Werte und alles ein, was in einem Pfad stehen wird. Laden Sie das Beispiel, wenn Sie nur sehen wollen, wie es funktioniert. Alles bleibt im Tab.
1. Quelle einfügen oder auswählen
Unicode-Text zum Kodieren; eine Base64-Alphabet-Zeichenkette zum Dekodieren. Keine JWT-Punkte und kein data:-Präfix.
2. URL-safe passend zur Quelle einstellen
Eingeschaltet, nutzt die Option Bindestrich und Unterstrich und lässt das Padding weg. Ausgeschaltet nutzt sie Plus und Schrägstrich und behält das Padding =. Eine URL-safe-Zeichenkette, die mit ausgeschalteter Option dekodiert wird, ergibt einen Fehler und kein Teilergebnis.
3. Ergebnis kopieren
Haben Sie minifiziertes JSON dekodiert, schicken Sie es an den JSON-Formatter oder den Online-JSON-Unminifier. Sie ändern nur das Layout, bereits verlorene Namen bleiben verloren.
Öffnen Sie das Bild-zu-Base64-Tool. Wählen Sie ein Bild (PNG, JPEG, GIF, WebP oder SVG, bis 32 MiB) oder ziehen Sie es auf die Seite. Wählen Sie Data-URI für CSS-url() und img src oder Rohes Base64, um das Ergebnis an ein anderes Werkzeug weiterzugeben. Die Vorschau wird über ein img-Element gerendert, SVG wird nicht als DOM eingebunden. Leere oder nicht unterstützte MIME-Typen werden abgelehnt, weil das Werkzeug nicht rät. Nach einem winzigen Icon können Sie die URI in das CSS einfügen. Nach einem Foto ist das in der Regel nicht ratsam.
Kodierung ist meist nur ein Schritt in einer längeren Fehlersuche. Der Kodierungs-Hub bündelt die Nachbarwerkzeuge.
Wann der Browser reicht und wann Sie trotzdem eine REPL brauchen
Lebt die Zeichenkette schon in einem Skript, entspricht der Buffer von Node dem UTF-8-dann-Base64-Pfad von FastMinify. base64url nutzen, wenn der Konsument eine JWT-Bibliothek ist.
Einfaches Beispiel
Das native Paar btoa / atob ist eine Binärstring-API. Wickeln Sie es mit TextEncoder/TextDecoder, sonst zerstören Sie alles außerhalb von Latin-1. Genau diese Hülle macht das FastMinify-Text-Tool bereits.
Einfaches Beispiel
Ein lokales PEM, eine Binär-Fixture oder ein CI-Job, der keinen Browser öffnen darf: openssl bleibt das richtige Werkzeug. FastMinify ersetzt keine Pipeline, die Dateien auf dem Datenträger bereits Hashes berechnet oder signiert.
Einfaches Beispiel
Keine Installation, nichts wird hochgeladen, UTF-8-Text plus ein eigener Bildkonverter mit 32-MiB-Limit und URL-safe-Option. Die Grenzen: Das Text-Tool ist kein Encoder für Binärdateien, HEIC und PDF liegen außerhalb des Bild-Tools, und die JWT-Verifikation ist eine andere Seite. Nutzen Sie es zum Prüfen, Erklären und Aushelfen auf einer Maschine ohne Node, und lassen Sie openssl oder Buffer in der CI.
Zusammenfassung
Base64 ist ein unscheinbarer, unverzichtbarer Adapter: Bytes hinein, ein ASCII-sicheres Alphabet heraus, 33 % größer und vollständig umkehrbar. FastMinify führt diesen Adapter im Browser aus. Es kodiert UTF-8-Text mit optionalem URL-safe-Alphabet, und ein eigener Bildkonverter (PNG, JPEG, GIF, WebP, SVG, 32 MiB) gibt eine Data-URI oder rohes Base64 aus, ohne SVG ins DOM zu injizieren. Es verschlüsselt nicht, es bildet keine Hashes, und es ersetzt weder jwt-verify noch ein CDN. Kodieren Sie das Snippet, dekodieren Sie die Logzeile, binden Sie das Icon ein und hören Sie dann auf. Beginnen Sie im Kodierungs-Tools-Hub und öffnen Sie JWT decode, wenn die Zeichenkette zwei Punkte hat.
Base64 jetzt kodieren oder dekodieren
Verwandte Artikel

Fügen Sie Token und JWKS ein und prüfen Sie eine RS256-, ES256- oder HS256-Signatur im Browser. Schlüsselwahl per kid, Fehler und zu prüfende Claims.

HTTP/2 und HTTP/3 ändern den Weg der Dateien, nicht ihre Größe. Messungen zu Größe, Kompilierzeit und Bundling zeigen, was Minifizierung noch bringt.

Rechnen Sie eine Unix-Epoche in ein lesbares Datum um und zurück, unterscheiden Sie Sekunden und Millisekunden und meiden Sie Zeitzonen-, JWT- und Zeitumstellungsfallen.