Base64 ist eines dieser Formate, das jeder Entwickler verwendet hat, aber nur wenige ohne Pause erklären können. Es sieht aus wie zufällige Zeichen. Es macht Daten größer. Und doch ist es das Rückgrat von E-Mail-Anhängen, JWT-Payloads, Data-URIs und Dutzenden anderer Protokolle, die binäre Daten über rein textbasierte Kanäle übertragen müssen.
Ein Base64-Decoder ist eines der häufigsten Entwickler-Werkzeuge — und die meisten kostenlosen Online-Varianten senden Ihre Daten an einen Server.
Was Base64 tatsächlich tut
Base64 kodiert beliebige binäre Daten als druckbare ASCII-Zeichen. Jede 3 Bytes Eingabe werden zu 4 Zeichen Ausgabe, unter Verwendung eines 64-Zeichen-Alphabets (A-Z, a-z, 0-9, +, /). Das =-Zeichen puffert die Ausgabe auf, wenn die Eingabeänge kein Vielfaches von 3 ist.
Der Kompromiss: Base64 vergrößert die Datengröße um etwa 33%. Ein 1KB-Bild wird zu etwa 1.3KB Text.
Base64 ist Kodierung, nicht Verschlüsselung. Jeder kann es dekodieren. Wenn Sie sensible Daten in Base64 legen, verschleiern Sie sie, schützen sie aber nicht.
Standard vs. URL-sicheres Base64
Nicht alles Base64 ist gleich:
| Variante | Alphabet | Padding | Verwendet in |
|---|---|---|---|
| Standard | A-Za-z+/= |
Ja | E-Mail (MIME), allgemeiner Transport |
| URL-sicher | A-Za-z-_ |
Nein | JWTs, URL-Parameter, Dateinamen |
| Ohne Padding | A-Za-z+/ |
Nein | Einige APIs, kompakte Speicherung |
Das - und _ im URL-sicheren Base64 ersetzen + und /, die in URLs Spezialzeichen sind. Wenn Sie ein JWT oder eine Data-URI debuggen und die Dekodierung fehlschlägt, prüfen Sie, ob der Encoder URL-sicheres oder Standard-Base64 verwendet hat.
Wo Entwickler auf Base64 stoßen
JWT-Payloads. Die drei Teile eines JWT (Header, Payload, Signatur) sind jeweils URL-safe Base64-kodiert. Das Decodieren eines JWT bedeutet, die Base64url-Kodierung jedes Segments umzukehren. Siehe unseren JWT-Decodier-Leitfaden für mehr.
Data-URIs. data:image/png;base64,iVBOR... bindet Bilder direkt in HTML oder CSS ein. Die Bildbytes sind Base64-kodiert, damit sie in einem Text-Attribut erscheinen können.
E-Mail-Anhänge. MIME (RFC 2045) verwendet Base64 zum Kodieren binärer Anhänge. Wenn Sie eine .eml-Datei mit langen Zeichenketten aus zufälligen Zeichen gesehen haben, ist das Base64-kodierter Inhalt.
APIs. Einige APIs akzeptieren oder geben Base64-kodierte Binärdaten zurück (Datei-Uploads, Bildverarbeitung, kryptografische Signaturen). Weniger verbreitet, seit die meisten APIs Multipart-Formulardaten unterstützen, aber es kommt noch vor.
Wie man Base64 im Browser dekodieren
Der schnellste Weg:
echo 'SGVsbG8gV29ybGQ=' | base64 -d
# → Hello World
Für URL-sicheres Base64 (JWTs, URL-Parameter) müssen Sie zuerst - → + und _ → / tauschen:
echo 'eyJzdWIiOiIxMjM0NSJ9' | tr '_-' '/+' | base64 -d
Wenn Sie den tr-Tanz nicht auswendig lernen möchten, behandelt ein browserbasierter Decoder beide Varianten automatisch. Der Base64-Konverter auf DevSpeedTools kodiert und dekodiert Standard- und URL-sicheres Base64 mit voller UTF-8-Unterstützung. Fügen Sie eine Zeichenkette ein, erhalten Sie die dekodierte Ausgabe — kein Server, kein Upload.
Häufige Base64-Fehler
- Verwenden von Standard-Base64 in URLs. Die
+und/-Zeichen zerstören die URL-Parsierung. Verwenden Sie URL-sicheres Base64 für URLs und JWTs. - Vergessen der UTF-8-Kodierung. Base64 arbeitet mit Bytes, nicht mit Zeichen. Wenn Sie Text mit nicht-ASCII-Zichen kodieren, kodieren Sie zuerst als UTF-8 und kodieren Sie dann die Bytes mit Base64.
- Base64 als Verschlüsselung behandeln. Es ist Kodierung. Jeder kann es dekodieren. Legen Sie keine Geheimnisse in Base64 ohne zusätzlichen Schutz.
- Padding ignorieren. Manche Parser erfordern Padding (
=), andere nicht. Wenn die Dekodierung fehlschlägt, versuchen Sie, Padding hinzuzufügen oder zu entfernen.
Jetzt kodieren und dekodieren
Wenn Sie Base64 kodieren oder dekodieren müssen, verwenden Sie ein browserbasiertes Tool. Der Base64-Konverter auf DevSpeedTools behandelt Standard- und URL-sicheres Base64 mit UTF-8-Unterstützung. Kein Upload, kein Server — toute Verarbeitung findet in Ihrem Browser mit btoa() und atob() statt.