Base64 dekodieren & kodieren: in PDF, Bild oder Datei

Base64 einfügen und die Datei zurückerhalten, ob PDF, Bild, Text oder JWT, oder eine Datei ablegen und ihr Base64 erhalten. Alles geschieht in diesem Tab.

33 Dateiformate an ihren eigenen Bytes erkannt · RFC 4648 · nichts wird hochgeladen
Kodiert

Fügen Sie oben etwas ein, ziehen Sie eine Datei auf die Karte oder wählen Sie eines der Beispiele.

Ausprobieren

Alles bleibt in diesem Tab: Nichts, was Sie einfügen oder ablegen, wird hochgeladen, und dekodiertes HTML oder Skript wird als Text gezeigt, nie ausgeführt.

3 Bytes → 4 Zeichen
Beispiel: Man
M77 · 4DByte 1
a97 · 61Byte 2
n110 · 6EByte 3
1922546

Drei Bytes haben 24 Bit. Base64 schneidet dieselben 24 Bit in vier Sechsergruppen, und jede Gruppe benennt eines von 64 Zeichen. Die weißen Linien zeigen, wo die Bytes enden: Sie fallen nicht mit den Gruppen zusammen, und genau das ist der ganze Trick.

Zeichen 1

16 + 2 + 1 = 19 T

Index 19 im Standardalphabet.

1wo ein Byte endetergänzt, nicht Ihresanders bei URL-sicherZeigen Sie auf ein Zeichen, um zu sehen, wie sich seine sechs Bits addieren.

So nutzen Sie den Base64-Decoder und -Encoder

Fügen Sie alles in das eine Feld ein (Text, Base64, eine ganze data: URI oder ein JWT), klicken Sie auf Datei auswählen oder ziehen Sie eine Datei auf die Karte. Der B64-Converter erkennt selbst, in welche Richtung es geht, zeigt das in der Anzeige und hält die andere Lesart einen Klick entfernt bereit.

Dekodieren Sie eine Datei, erhalten Sie den Typ, gelesen aus den Bytes selbst, die Größe, bei Bildern die Pixelgröße, eine Vorschau von Bildern und PDFs und einen Download mit der richtigen Dateiendung. Kodieren Sie eine, erhalten Sie das Base64, eine fertige data: URI und was die Kodierung an Größe kostet. Die Optionen Alphabet, Padding und Zeilenumbrüche unter dem Ergebnis ändern die Ausgabe.

Base64-Decoder: eingefügtes Base64 als PDF-Dokument dekodiert, mit Typ, Größe und der Grafik 3 Bytes → 4 ZeichenBase64-Decoder: eingefügtes Base64 als PDF-Dokument dekodiert, mit Typ, Größe und der Grafik 3 Bytes → 4 ZeichenEin Feld, beide RichtungenText, Base64, eine data: URI oder ein JWT einfügen. Die Anzeige sagt, wie die Eingabe gelesen wurde; das Menü ändert es.Datei auswählenOder eine Datei irgendwo auf die Karte ziehen: Sie wird zu Base64 und einer data: URI, ohne den Tab zu verlassen.Was die Bytes sindBeim Dekodieren beginnt das Ergebnis mit Typ, Größe und Signatur der Datei, dann folgen eine Vorschau und ein Download.AusgabeoptionenStandard- oder URL-sicheres Alphabet, Padding an oder aus und Zeilenumbrüche für MIME oder PEM.3 Bytes → 4 ZeichenIhre eigenen Bytes, neu in Sechsergruppen geschnitten. Zeigen Sie auf ein Zeichen, um zu sehen, wie sich seine Bits addieren.
Das Tool beim Dekodieren eines PDF. Wählen Sie eine Nummer, um zu sehen, was der jeweilige Teil macht.

Was ist Base64-Codierung, und wozu gibt es sie?

Base64 schreibt beliebige Bytes mit 64 Zeichen, die überall durchkommen: A–Z, a–z, 0–9, + und /. Es gibt Base64, weil E-Mail, URLs, JSON und XML für Text gebaut wurden und ein rohes Byte ein Steuerzeichen, ein Anführungszeichen oder ein Nullbyte sein kann, das sie zerbricht.

Base64 nimmt jeweils drei Bytes, legt ihre 24 Bit in eine Reihe und schneidet die Reihe in vier Sechsergruppen. Sechs Bit fassen 64 Werte, also benennt jede Gruppe genau ein Zeichen. Drei Bytes hinein, vier Zeichen heraus, jedes Mal: Deshalb ist Base64 etwa ein Drittel größer als das, was hineinging.

Man → TWFu
M77 · 4DByte 1
a97 · 61Byte 2
n110 · 6EByte 3
1922546TWFu

Drei Bytes haben 24 Bit. Base64 schneidet sie neu in vier Sechsergruppen, und jede Gruppe benennt eines von 64 druckbaren Zeichen, also kosten drei Bytes immer vier Zeichen. Daher stammt das Plus von 33 %.

Ma → TWE=
M77 · 4DByte 1
a97 · 61Byte 2
kein Byte—Byte 3
19224—TWE=

Zwei Bytes haben 16 Bit. Base64 ergänzt 2 Null-Bits, um die dritte Gruppe zu vervollständigen, und ein = steht dort, wo das vierte Zeichen wäre.

M → TQ==
M77 · 4DByte 1
kein Byte—Byte 2
kein Byte—Byte 3
1916——TQ==

Ein Byte hat 8 Bit. Base64 ergänzt 4 Null-Bits, um die zweite Gruppe zu vervollständigen, und zwei = stehen dort, wo das dritte und vierte Zeichen wären. = trägt überhaupt keine Bits.

Die weißen Linien markieren, wo ein Byte endet und das nächste beginnt. Sie fallen nicht mit den Sechsergruppen zusammen, und dieser Versatz ist der ganze Mechanismus. Quelle: RFC 4648 §4

Wie wandle ich Base64 in PDF um?

Fügen Sie die Zeichenkette ein, und das Tool stellt das PDF wieder her: Es zeigt Version und Größe, öffnet das Dokument im eingebauten PDF-Viewer Ihres Browsers und bietet einen Download an. Sie müssen weder sagen, dass es ein PDF ist, noch vorher ein data:-Präfix entfernen.

Ein PDF erkennt man an seinen ersten fünf Bytes, %PDF-, daher wird die Datei auch dann erkannt, wenn ihr Name, der vom Absender angegebene Typ oder das Feld, aus dem sie kam, etwas anderes sagen. Sind die Bytes kein PDF, sagt die Seite, was sie stattdessen sind, statt an einem Dokument zu scheitern, das es nie gab.

Die Datei wird in Ihrem Browser wiederhergestellt. Nichts wird hochgeladen, und das zählt, wenn das PDF eine Gehaltsabrechnung, ein Vertrag oder eine Rechnung ist.

JSON aus einer API"document": "JVBERi0xLjcKJeLjz9MKMS…"Ein Feld in einer Antwort. Die Anführungszeichen gehören nicht zum Base64.
Ein E-Mail-AnhangContent-Transfer-Encoding: base64MIME bricht den Body nach 76 Zeichen pro Zeile um. Fügen Sie ihn mit den Zeilenumbrüchen ein: Sie werden übersprungen.
Eine data: URIdata:application/pdf;base64,JVBERi0x…Fügen Sie alles ein. Das Präfix wird gelesen, nicht von Hand entfernt.
Die ersten Bytes sagen, was es ist
  1. 25%
  2. 50P
  3. 44D
  4. 46F
  5. 2D-
  6. 311
  7. 2E.
  8. 377

Die ersten 5 Bytes, %PDF-, sind die ganze Signatur. Die Bytes 6 bis 8 sind die Version: 1.7. Eine Dateiendung spielt keine Rolle, daher kommt ein PDF, das jemand .txt genannt hat, trotzdem als PDF zurück.

Drei Stellen, von denen man ein Base64-PDF kopiert, und die Bytes, die es nach dem Dekodieren ausweisen. Quelle: ISO 32000-1:2008 §7.5.2, RFC 8118 §8

Wie wandle ich ein Bild in Base64 um, und wann lohnt sich das?

Legen Sie das Bild ab, und Sie erhalten sein Base64 und eine fertige data: URI zum Einfügen in HTML oder CSS. Ob Sie das tun sollten, ist die schwierigere Frage: Base64 kostet immer etwa ein Drittel mehr, und ein eingebettetes Bild lässt sich nicht für sich allein zwischenspeichern.

Wenn Sie umgekehrt Base64 in ein Bild umwandeln, erhalten Sie das Format, die Größe und die echte Pixelgröße, gelesen aus dem Header der Datei selbst, nicht aus dem Bild auf dem Bildschirm, dazu einen Download mit der richtigen Dateiendung.

  • Die Datei auf der Festplatte12,9 kB 100 %
  • Als Base6417,3 kB +33,4 %
  • Für MIME bei 76 Zeichen umbrochen17,5 kB +35,1 %
  • Die Datei, mit gzip komprimiert11,7 kB -9,5 %
  • Das Base64, mit gzip komprimiert12,5 kB -3,2 %
Eine echte Datei
  • einmal heruntergeladen
  • vom Browser und vom CDN zwischengespeichert
  • neben der Seite geladen, nicht in ihr
Dasselbe Bild eingebettet
  • vor der Kompression ein Drittel größer
  • nur als Teil der Datei zwischengespeichert, die es enthält
  • als Teil des Stylesheets oder des HTML geparst

Kompression holt das meiste zurück: Mit gzip komprimiert ist das Base64 nur 7 % größer als die komprimierte Datei. Was sie nicht zurückgeben kann, ist der eigene Cache-Eintrag des Bildes: In eine HTML-Seite eingebettet, wird es mit jeder Seite, die es enthält, erneut heruntergeladen.

Die Faustregel: Betten Sie ein paar Hundert Bytes ein (ein Icon, einen Abstandhalter, ein Logo in einer E-Mail) und verlinken Sie alles Größere. Dieses PNG-Bild mit 12,9 kB liegt schon über der Grenze.

Gemessen an dem Bild, das das Beispiel des Tools dekodiert: dieselben Bytes auf fünf Arten transportiert, mit gzip auf höchster Stufe komprimiert. Quelle: RFC 2045 §6.8

Base64 vs. URL-sicheres Base64: Was ist der Unterschied?

URL-sicheres Base64 (RFC 4648 §5) ist dieselbe Codierung mit zwei getauschten Zeichen: Aus + wird - und aus / wird _. Das Padding wird oft ebenfalls weggelassen.

Verwenden Sie es überall, wo das Ergebnis in eine URL, einen Dateinamen oder ein Cookie kommt. JSON Web Tokens verwenden es durchgehend, deshalb enden die Teile eines Tokens nie auf =. Dieses Tool liest beide Alphabete und sagt Ihnen, wenn eine Zeichenkette beide enthält.

Standard (RFC 4648 §4)+/8=
URL-sicher (RFC 4648 §5)-_8=
base64url in einem JWT (RFC 7515 §2)-_8
  • + → -Index 62. In einem Query-String liest ein Formular-Decoder + als Leerzeichen, und die Daten kommen falsch zurück.
  • / → _Index 63. In einem Pfad beginnt / ein neues Segment, und der Wert wird in zwei Teile gespalten.
  • = entfälltIn einer URL wird = meist als %3D prozentkodiert (RFC 4648 §5). Ein JWT lässt es ganz weg (RFC 7515 §2): Die Länge allein sagt, wo die Bytes enden.

Die ersten 62 Zeichen der beiden Alphabete sind identisch. Deshalb kann ein Tool, das beide Alphabete liest, jedes von beiden dekodieren, und deshalb sagt Ihnen diese Seite, wenn eine Zeichenkette beide enthält.

Nur 2 Zeichen unterscheiden sich zwischen den beiden Alphabeten. Alles andere an ihnen ist gleich. Quelle: RFC 4648 §5, RFC 7515 §2

Ist Base64 eine Verschlüsselung? Nein.

Base64 verbirgt nichts. Es gibt keinen Schlüssel und kein Geheimnis, und die Umkehrung kostet keinerlei Mühe: Ein Decoder wie dieser erledigt sie schon beim Tippen.

Am meisten zählt das bei der Authentifizierung per HTTP Basic: Der Header trägt Benutzername und Passwort als eine einzige Base64-Zeichenkette, lesbar für jeden, der sie sieht. Deshalb hält RFC 7617 das Verfahren nur über eine verschlüsselte Verbindung wie TLS für sicher. Wenn etwas unlesbar bleiben muss, braucht es Verschlüsselung. Base64 bringt Bytes nur sicher durch einen Kanal, der für Text gebaut ist.

Ein Authorization-Header, wie RFC 7617 §2 ihn bildet

Authorization: Basic dXNlcjpwYXNzd29yZA==

Ein Schritt zurück: kein Schlüssel nötig, kein Passwort nötig

user:password

RFC 7617 baut den Header Schritt für Schritt auf, und der letzte Schritt ist sein ganzer „Schutz“: Der Client „erhält die basic-credentials, indem er diese Oktettfolge mit Base64 kodiert“. Sein §1 sagt, was das bedeutet: Sofern nicht TLS oder ein ähnliches System die Verbindung schützt, „werden Benutzerkennung und Passwort als Klartext über das Netzwerk übertragen“. Base64 hat keinen Schlüssel, also gibt es nichts zu knacken: Wer die Zeichenkette hat, hat das Passwort.

Die Zugangsdaten oben sind erfunden. Sie zurückzulesen braucht einen Schritt und keinen Schlüssel: Das ist mit „Codierung, keine Verschlüsselung“ gemeint. Quelle: RFC 7617 §2, §1

Warum wird mein dekodierter Text zu Zeichensalat?

Weil Base64 Bytes transportiert, und Bytes werden erst zu Buchstaben, wenn etwas eine Zeichenkodierung wählt. Lesen Sie UTF-8-Text, als wäre er ISO-8859-1, wird aus é ein é; lesen Sie ISO-8859-1 als UTF-8, wird daraus ein Ersatzzeichen.

Eine data: URI kann ihren Zeichensatz (charset) angeben, und diese Seite liest den Text in diesem Zeichensatz, statt alles in UTF-8 zu zwingen. Hat Ihr Browser keinen Decoder für den angegebenen, sagt die Seite das, statt Ihnen stillschweigend die falschen Buchstaben zu zeigen.

„Café“ in UTF-8 geschrieben436166C3A9
„Café“ in ISO-8859-1 geschrieben436166E9

In UTF-8 belegt é 2 Bytes, in ISO-8859-1 1 Byte. Base64 transportiert Bytes, keine Buchstaben, daher kann die Zeichenkette selbst einem Decoder nicht sagen, was gemeint war.

Richtig gelesenCafé
UTF-8-Bytes als ISO-8859-1 gelesenCafé
ISO-8859-1-Bytes als UTF-8 gelesenCaf�
Zeichensalat (Mojibake) hat zwei Formen: lesbaren Unsinn (Café), wenn UTF-8 als Ein-Byte-Codepage gelesen wird, und ein Ersatzzeichen (Caf�), wenn die Bytes überhaupt kein gültiges UTF-8 sind. Quelle: RFC 4648 §4, RFC 2397 §4

Base64 in Python, JavaScript, Java, C#, Go, PowerShell und der Shell

Jede Sprache hat Base64 eingebaut. Die Fallen sind überall dieselben: Kodieren Sie Bytes, keinen String, und geben Sie an, in welcher Zeichenkodierung der Text vorliegt.

JavaScripts btoa() ist die schärfste Kante: Es nimmt nur Zeichen bis U+00FF, alles jenseits von Latin-1 muss also zuerst mit TextEncoder zu UTF-8-Bytes werden. Jedes Beispiel unten kodiert und dekodiert „Man“ und wurde ausgeführt, um seine Ausgabe zu prüfen.

import base64

b64 = base64.b64encode("Man".encode("utf-8")).decode("ascii")
print(b64)                                    # TWFu
print(base64.b64decode(b64).decode("utf-8"))  # Man

Ausgeführt mit Python 3.14.4 am 26. Oktober 2026: Es gibt aus, was die Kommentare zeigen.

Jedes Snippet wurde mit „Man“ ausgeführt und gibt aus, was seine Kommentare zeigen. Das base64 -d der Shell heißt auf älteren macOS-Versionen -D. Quelle: gnu.org, developer.mozilla.org

Das Base64-Alphabet, von 0 bis 63

Jede Sechsergruppe ist eine Zahl von 0 bis 63, und dies ist die Tabelle, in der sie nachgeschlagen wird. Base64 unterscheidet Groß- und Kleinschreibung: A ist 0 und a ist 26, wer also die Schreibung eines Buchstabens ändert, zerstört die Zeichenkette.

Es lohnt sich, Base64 auf einen Blick zu erkennen: Eine Reihe von A ist eine Reihe von Nullbytes, und eine Base64-Zeichenkette, die mit JVBER beginnt, ist ein PDF, mit iVBOR ein PNG und mit /9j/ ein JPEG.

  1. A0
  2. B1
  3. C2
  4. D3
  5. E4
  6. F5
  7. G6
  8. H7
  9. I8
  10. J9
  11. K10
  12. L11
  13. M12
  14. N13
  15. O14
  16. P15
  17. Q16
  18. R17
  19. S18
  20. T19
  21. U20
  22. V21
  23. W22
  24. X23
  25. Y24
  26. Z25
  27. a26
  28. b27
  29. c28
  30. d29
  31. e30
  32. f31
  33. g32
  34. h33
  35. i34
  36. j35
  37. k36
  38. l37
  39. m38
  40. n39
  41. o40
  42. p41
  43. q42
  44. r43
  45. s44
  46. t45
  47. u46
  48. v47
  49. w48
  50. x49
  51. y50
  52. z51
  53. 052
  54. 153
  55. 254
  56. 355
  57. 456
  58. 557
  59. 658
  60. 759
  61. 860
  62. 961
  63. +URL-sicher: -62
  64. /URL-sicher: _63

0–25 sind A–Z, 26–51 sind a–z, 52–61 sind 0–9. Nur die letzten beiden Zeichen der Tabelle unterscheiden sich zwischen den beiden Alphabeten, oben markiert. = steht gar nicht in der Tabelle: Es ist kein Wert, sondern das Zeichen dafür, dass die letzte Gruppe aus drei Bytes kurz war.

Die 64 Zeichen in der Reihenfolge, die RFC 4648 §4 vorgibt. Die Zahl unter jedem ist der Sechs-Bit-Wert, für den es steht. Quelle: RFC 4648 §4

Base64: Fragen und Antworten

Was bedeutet Base64 dekodieren?

Beim Dekodieren wird jede Gruppe aus vier Base64-Zeichen wieder zu den drei Bytes, für die sie steht. Diese Bytes können Text sein oder eine ganze Datei, etwa ein PDF, ein PNG-Bild oder ein ZIP-Archiv. Dieses Tool liest die ersten Bytes, um das zu unterscheiden, zeigt Ihnen dann den Text oder die Datei selbst statt einer Wand aus Symbolen und lässt Sie sie herunterladen.

Wie dekodiere ich eine Base64-Datei?

Fügen Sie die Base64-Zeichenkette in das Feld ein. Das Tool dekodiert sie, vergleicht die ersten Bytes mit den Dateisignaturen, die es kennt (33 Dateiformate insgesamt), nennt das Format, zeigt ein Bild oder PDF als Vorschau und bietet einen Download mit der richtigen Dateiendung. Sie müssen nie sagen, welche Art Datei es ist, und um das herauszufinden, wird nichts hochgeladen.

Wofür wird Base64 verwendet?

Es bringt Bytes durch Kanäle, die für Text gebaut sind: E-Mail-Anhänge (MIME), data: URIs in HTML und CSS, Binärfelder in JSON und XML, JSON Web Tokens, die Authentifizierung per HTTP Basic sowie Zertifikate und Schlüssel in PEM-Dateien. In jedem Fall müssen die Daten einen Kanal passieren, der rohe Bytes verändern oder verwerfen könnte, also reisen sie als einfache Buchstaben und Ziffern.

Ist die Base64-Codierung eine Verschlüsselung?

Nein. Base64 ist eine Codierung, keine Chiffre: Es hat keinen Schlüssel und kein Geheimnis, und jeder kann es im Nu umkehren, so wie diese Seite es beim Tippen tut. Behandeln Sie alles, was in Base64 geschrieben ist, als läge es offen. Wenn Daten privat bleiben müssen, verschlüsseln Sie sie zuerst und kodieren dann die verschlüsselten Bytes als Base64, falls sie als Text reisen müssen.

Ist es sicher, Base64 online zu dekodieren?

Auf dieser Seite ja, und Sie können es nachprüfen: Alles wird per JavaScript in Ihrem eigenen Browser-Tab dekodiert, und nichts, was Sie einfügen oder ablegen, wird hochgeladen. Dekodiertes HTML, SVG und Skripte werden als Text gezeigt, nie ausgeführt; ein Bild oder PDF zeigt der eingebaute Viewer Ihres Browsers. Öffnen Sie beim Benutzen den Netzwerk-Tab der Entwicklertools Ihres Browsers: Keine Anfrage enthält Ihre Daten.

Warum ist Base64 33 % größer als das Original?

Weil aus je drei Bytes vier Zeichen werden, und vier geteilt durch drei ergibt 1,33. Am Ende können bis zu zwei = als Padding hinzukommen, und wer die Zeilen für E-Mail nach 76 Zeichen umbricht, fügt jeder Zeile einen Zeilenumbruch hinzu. Eine lange Zeichenkette ist daher oft etwa 35 % größer als die Bytes, die sie trägt. Kompression wie gzip holt das meiste davon zurück.

Was ist URL-sicheres Base64?

Es ist Base64, bei dem + durch - und / durch _ ersetzt ist, wie RFC 4648 §5 es definiert, damit das Ergebnis ohne Maskierung in eine URL, einen Dateinamen oder ein Cookie passt. Das Padding wird meist ebenfalls weggelassen, etwa in JSON Web Tokens. Dieses Tool liest beide Alphabete, sogar gemischt in einer Zeichenkette, und kann jedes von beiden schreiben.

Warum schlägt das Dekodieren meines Base64 fehl?

Fast immer wegen eines einzigen Zeichens, das nicht zum Base64-Alphabet gehört: ein Auslassungszeichen, wo eine Chat-App die Zeichenkette abgeschnitten hat, ein typografisches Anführungszeichen aus einer Textverarbeitung oder ein geschütztes Leerzeichen aus einem PDF. Dieses Tool nennt das Zeichen, zeigt es an seiner Stelle samt Position, sagt Ihnen, wie viel davor sauber dekodiert wurde, und bietet „Entfernen und dekodieren“ an, wenn sich der Rest noch dekodieren lässt.

Kann ich Base64 in ein Bild umwandeln?

Ja. Fügen Sie die Zeichenkette ein, mit oder ohne Präfix wie data:image/png;base64,, und das Bild erscheint mit Format, Größe und echter Pixelgröße, gelesen aus dem Header der Datei selbst. Dann laden Sie es mit der richtigen Dateiendung herunter. PNG, JPEG, GIF, WebP, BMP, ICO und AVIF erhalten eine Vorschau; ein SVG wird zuerst als Text gezeigt, weil ein SVG Skript enthalten kann.

Was bedeutet das = am Ende von Base64?

Es bedeutet, dass die letzte Gruppe aus drei Bytes kurz war. Zwei übrige Bytes werden zu drei Zeichen und einem =, ein übriges Byte wird zu zwei Zeichen und ==. Das Padding trägt überhaupt keine Daten: Es sagt einem Decoder nur, wo die Bytes enden. Viele Decoder, darunter dieser, lesen auch Base64, bei dem das Padding weggelassen wurde.

Gibt es eine Größenbeschränkung?

Eine Datei, die Sie auswählen oder ablegen, darf bis zu 10 MB groß sein; eine größere wird mit Name und Größe abgelehnt, nie halb gelesen. Für eingefügten Text liegt die Grenze bei 14.349.002 Zeichen: genug für das Base64 einer Datei von 10 MB samt Zeilenumbrüchen, sodass sich alles, was das Tool kodiert, wieder dekodieren lässt. Große Eingaben werden im Hintergrund gelesen, damit das Tippen flüssig bleibt.

Kann ich hier ein JWT dekodieren?

Ja. Fügen Sie das Token ein, und Header und Payload erscheinen als formatiertes JSON, mit Datumsangaben neben den Claims iat und exp und der Signatur als Bytes. Diese Seite dekodiert nur die drei base64url-Teile: Sie prüft die Signatur nicht und sagt nie, dass ein Token gültig ist. Verwenden Sie sie also nicht, um zu entscheiden, ob Sie einem Token vertrauen.

Fehlt Ihnen etwas?Funktion oder neues Tool vorschlagen