Base64 kodieren und dekodieren

Text oder Dateien in Base64 kodieren und Strings im Browser zurück in Bytes dekodieren. Mit Padding-Beispielen, RFC-4648-Alphabet und URL-sicherer Variante.

Alle Berechnungen laufen im Browser. Nichts von dem, was Sie eingeben, wird an einen Server gesendet.

01 Rechner

Ergebnisse aktualisieren sich beim Tippen. Ctrl/Cmd+Enter kopiert das Hauptergebnis.

Ergebnis

    Rechnung zeigen

      Base64 kodieren und dekodieren konvertiert beliebige Bytes mithilfe des RFC 4648-Alphabets in eine ASCII-Zeichenfolge und kehrt diese Zeichenfolge wieder in die ursprünglichen Bytes um. Der Textmodus akzeptiert eine Zeichenkodierung wie UTF-8; Der Dateimodus liest einen Upload über den FileReader des Browsers und kann einen „data:“-URI zum Einbetten ausgeben. Kodierung ist keine Verschlüsselung. Jeder, der die Zeichenfolge erhält, kann sie entschlüsseln.

      Die gesamte Kodierung und Dekodierung läuft in Ihrem Browser. Nichts, was Sie einfügen, wird an einen Server gesendet.

      Codieren Sie Text oder eine Datei in Base64

      Concept diagram: Eingaben leads to Codieren Sie Text oder eine Datei … leads to ErgebnisEingabenCodieren Sie Text odereine Datei …Ergebnis
      Codieren Sie Text oder eine Datei in Base64.

      Bei der Codierung werden Rohbytes verwendet und eine Zeichenfolge aus A bis Z, a bis z, 0 bis 9, plus Schrägstrich und Füllzeichen „=“ geschrieben. Fügen Sie Text ein oder wählen Sie eine Datei aus, wählen Sie die Zeichenkodierung aus, wenn die Quelle Text ist, und lesen Sie die Ausgabe.

      Der Dateimodus eignet sich für kleine Bilder und Dokumente, die ohne Binärkanal in JSON, XML oder E-Mail übertragen werden müssen.

      Die Ausgabe kann sicher über Systeme transportiert werden, die beliebige Binärdateien beschädigen, z. B. ältere Mail-Gateways oder das Kopieren und Einfügen in XML. Es ist konstruktionsbedingt länger als die Eingabe. Eine ungültige leere Eingabe erzeugt keine Zeichenfolge. Das Tool wartet auf Bytes, bevor es Zeichen ausgibt.

      Dekodieren Sie einen Base64-String zurück in Daten

      Concept diagram: Eingaben leads to Dekodieren Sie einen Base64-String… leads to ErgebnisEingabenDekodieren Sie einenBase64-String…Ergebnis
      Dekodieren Sie einen Base64-String zurück in Daten.

      Durch die Dekodierung wird die Alphabetsuche umgekehrt, der ursprüngliche Bitstrom neu erstellt und Text oder eine herunterladbare Datei zurückgegeben. Auffüllzeichen „=“ am Ende sind von Bedeutung: Sie markieren, wie viele Bytes sich in der letzten unvollständigen Gruppe befanden. Zeichen außerhalb des Alphabets verursachen eher einen eindeutigen Fehler als eine stille Teildekodierung.

      Leerzeichen werden häufig ignoriert, sodass aus PEM-Zertifikaten oder MIME-Körpern kopierte Zeichenfolgen weiterhin funktionieren. Eine Zeichenfolge, die wie Base64 aussieht, aber das URL-sichere Alphabet verwendet, benötigt den URL-sicheren Dekodierungsmodus, andernfalls werden Bindestrich und Unterstrich im Standardalphabet als unzulässig abgelehnt.

      Verstehen Sie, wie die Base64-Kodierung funktioniert

      Process with 3 steps: Enter how Base64 encoding works; Read the main result; Check the breakdown1Enter how Base64encoding works2Read the main result3Check the breakdown
      Verstehen Sie, wie die Base64-Kodierung funktioniert.

      Base64 verarbeitet Eingaben in Blöcken von drei Bytes (24 Bit). Diese 24 Bits werden in vier Gruppen zu je 6 Bits aufgeteilt. Jeder 6-Bit-Wert ist ein Index von 0 bis 63 im 64-Zeichen-Alphabet. Aus drei Eingangsbytes werden somit vier Ausgangszeichen.

      Bytes:  [ byte1 ][ byte2 ][ byte3 ]
      Bits:   aaaaaaaa bbbbbbbb cccccccc
      Groups: aaaaaa aabbbb bbbbcc cccccc
      Chars:  Char1  Char2  Char3  Char4

      Wenn weniger als drei Bytes verbleiben, gibt der Encoder immer noch vier Zeichen aus, fügt jedoch Auffüllungen hinzu, damit der Decoder die ursprüngliche Länge kennt. Die Bitumgruppierung ist der gesamte Algorithmus; Es gibt keine Prüfsumme und keinen Schlüssel.

      Das Wort Dog Schritt für Schritt kodieren

      Process with 3 steps: Enter Encode word Dog step by step; Read the main result; Check the breakdown1Enter Encode word Dogstep by step2Read the main result3Check the breakdown
      Das Wort Dog Schritt für Schritt kodieren.

      Das Wort Dog besteht aus drei ASCII-Bytes, füllt also eine Base64-Gruppe und wird ohne Füllzeichen kodiert. Die Fixture-Ausgabe ist RG9n. Die Umwandlung der Bytes in Bits, die Neugruppierung in 6-Bit-Indizes und das Lesen des RFC 4648-Alphabets zeigt, warum diese vier Zeichen erscheinen und wie jeder Drei-Byte-Block demselben Pfad folgt.

      1. Schreiben Sie die Bytes. D = 0x44 = 01000100 o = 0x6F = 01101111 g = 0x67 = 01100111

      2. Verketten Sie 24 Bits. 01000100 01101111 01100111

      3. In 6-Bit-Gruppen aufteilen. 010001 000110 111101 100111

      4. Wandeln Sie jede Gruppe in einen Dezimalindex um. 17, 6, 61, 39

      5. Schlagen Sie das Alphabet nach. Index 17 = „R“, 6 = „G“, 61 = „9“, 39 = „n“.

      Ergebnis: „RG9n“. Die Dekodierung von „RG9n“ gibt die drei Originalbytes und den Text „Dog“ unter UTF-8 oder ASCII zurück.

      Verstehen Sie das Auffüllen mit dem Gleichheitszeichen

      Concept diagram: Eingaben leads to Verstehen Sie das Auffüllen mit de… leads to ErgebnisEingabenVerstehen Sie dasAuffüllen mit de…Ergebnis
      Verstehen Sie das Auffüllen mit dem Gleichheitszeichen.

      Auffüllen erscheint, wenn die Byteanzahl kein Vielfaches von drei ist. Ein übrig gebliebenes Byte erzeugt zwei Buchstaben und zwei „=“-Zeichen. Zwei übrig gebliebene Bytes ergeben drei Zeichen und ein „=“. Die Fixtures „Do“ → „RG8=“ und „Dogs“ → „RG9ncw==“ zeigen beide Restfälle neben dem nicht aufgefüllten Drei-Byte-Wort „Dog“.

      InputBytesEncodedPadding
      Dog3RG9nkeines
      Do2RG8=ein =
      Dogs4RG9ncw==zwei =

      „Do“ besteht aus zwei Bytes: „01000100 01101111“. Nach der 6-Bit-Gruppierung sind nur noch genügend Bits für drei sinnvolle Zeichen („RG8“) vorhanden, und ein Füllzeichen „=“ füllt den vierten Platz. „Dogs“ besteht aus vier Bytes: eine vollständige Drei-Byte-Gruppenkodierung als „RG9n“, dann ein Ein-Byte-Rest, der als „cw==“ kodiert ist. Wenn Sie die Auffüllung manuell entfernen, ohne die Bitlänge anzupassen, wird die Dekodierung unterbrochen. Lassen Sie beim Einfügen die „=“-Zeichen an Ort und Stelle.

      Lesen Sie das Base64-Alphabet

      Concept diagram: Eingaben leads to Lesen Sie das Base64-Alphabet leads to ErgebnisEingabenLesen Sie dasBase64-AlphabetErgebnis
      Lesen Sie das Base64-Alphabet.

      RFC 4648 definiert 64 Zeichen plus das Füllzeichen „=“. Die Indizes 0 bis 25 sind „A“ bis „Z“, 26 bis 51 sind „a“ bis „z“, 52 bis 61 sind „0“ bis „9“, Index 62 ist „+“ und Index 63 ist „/“.

      Index 0 ist „A“, nicht „0“, was jeden zum Stolpern bringt, der erwartet, dass Ziffern das Alphabet anführen.

      Index rangeCharacters
      0 to 25A to Z
      26 to 51a to z
      52 to 610 to 9
      62+
      63/
      padding=

      Das Alphabet-Panel des Rechners listet dieselbe Tabelle auf, die der Encoder verwendet, sodass ein verdächtiges Zeichen anhand des Standardsatzes überprüft werden kann. Die vollständige Zeichenfolge lautet „ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/“.

      Verwenden Sie die URL-sichere Base64-Variante

      Concept diagram: Eingaben leads to Verwenden Sie die URL-sichere Base… leads to ErgebnisEingabenVerwenden Sie dieURL-sichere Base…Ergebnis
      Verwenden Sie die URL-sichere Base64-Variante.

      Das URL-sichere Alphabet (base64url) ersetzt „+“ durch „-“ und „/“ durch „_“. In einigen Protokollen kann auf die Auffüllung verzichtet werden. JSON-Web-Tokens verwenden diese Variante, sodass Token-Segmente in URLs und HTTP-Headern enthalten sein können, ohne dass die Plus- und Schrägstrichzeichen prozentual kodiert werden.

      Standard- und URL-sichere Zeichenfolgen sind nicht austauschbar. Das Dekodieren einer JWT-Nutzlast mit dem Standardalphabet schlägt bei Bindestrichen fehl. Das Tool bietet einen expliziten URL-sicheren Modus sowohl für die Kodierung als auch für die Dekodierung. Bei der prozentualen Codierung einer URL handelt es sich um ein anderes Problem. Verwenden Sie die Seite „URL-Kodierung und -Dekodierung“, wenn das Ziel RFC 3986-Escape und nicht Base64 ist.

      Berücksichtigen Sie die Größenzunahme

      Concept diagram: Eingaben leads to Berücksichtigen Sie die Größenzuna… leads to ErgebnisEingabenBerücksichtigen Sie dieGrößenzuna…Ergebnis
      Berücksichtigen Sie die Größenzunahme.

      Alle drei Bytes werden zu vier Zeichen, sodass die codierte Länge etwa 4/3 der Eingabe beträgt, was einer Steigerung von 33 Prozent vor Zeilenumbrüchen entspricht. Durch Auffüllen können der letzten Gruppe ein oder zwei zusätzliche Zeichen hinzugefügt werden. Bei Daten-URIs und E-Mail-Anhängen spüren Sie dies schnell: Aus einem 300-KB-Bild werden etwa 400 KB Text.

      encoded_length ≈ 4 × ceil(byte_length / 3)

      Beim Zeilenumbruch mit 76 Zeichen, wie er bei MIME üblich ist, werden neue Zeilenbytes hinzugefügt. Bevorzugen Sie binäre Anhänge oder komprimierte Formate, wenn es auf die Größe ankommt; Verwenden Sie Base64, wenn der Kanal wirklich keine Rohbytes übertragen kann.

      Wählen Sie eine Zeichenkodierung

      Concept diagram: Eingaben leads to Wählen Sie eine Zeichenkodierung leads to ErgebnisEingabenWählen Sie eineZeichenkodierungErgebnis
      Wählen Sie eine Zeichenkodierung.

      Base64 kodiert Bytes, keine abstrakten Zeichen. Die gleichen Buchstaben erzeugen unter UTF-8, UTF-16, Shift JIS oder Big5 unterschiedliche Bytes. Das Dekodieren und anschließende Interpretieren mit dem falschen Zeichensatz ergibt Mojibake, selbst wenn die Base64-Ebene perfekt war. Daher muss der Textmodus-Zeichensatz beim Codieren mit dem des Produzenten und beim Dekodieren mit dem des Konsumenten übereinstimmen.

      CharsetTypical use
      UTF-8Default for modern text and APIs
      Windows-1252Legacy Western European text
      UTF-16 LE / BESome Windows and Java payloads
      Shift JISOlder Japanese text
      Big5Older Traditional Chinese text

      Für das Wort „Dog“ erzeugen ASCII und UTF-8 die gleichen drei Bytes, daher ist „RG9n“ identisch. Nicht-ASCII-Text divergiert. Wählen Sie vor dem Codieren den Zeichensatz aus, der mit dem Produzenten übereinstimmt, und nach dem Decodieren denselben Zeichensatz, sonst sieht der Roundtrip wie ein Base64-Fehler aus, wenn der Fehler im Upstream liegt.

      Häufig gestellte Fragen

      Ist Base64-Verschlüsselung?

      Nein. Base64 ist eine Kodierung, die jeder mit dem öffentlichen Alphabet umkehren kann. Es verbirgt nichts. Verwenden Sie einen echten kryptografischen Algorithmus, wenn Vertraulichkeit erforderlich ist. Verwenden Sie Base64, wenn ein Kanal ASCII-sichere Bytes benötigt.

      Warum endet die Base64-Ausgabe mit Gleichheitszeichen?

      Die „=“-Zeichen werden aufgefüllt. Sie markieren, dass die endgültige Eingabegruppe ein oder zwei statt drei Bytes hatte. „Do“ kodiert zu „RG8=“ und „Dogs“ zu „RG9ncw==“. Behalten Sie die Auffüllung beim Dekodieren bei, es sei denn, das Protokoll dokumentiert, dass sie entfernt wurde.

      Wofür kodiert Dog?

      „Dog“ kodiert nach „RG9n“ ohne Auffüllung, da drei Bytes genau eine Base64-Gruppe füllen. Die schrittweise Bit-Umgruppierung wird im ausgearbeiteten Beispiel auf dieser Seite gezeigt.

      Was ist der Unterschied zwischen Standard- und URL-sicherem Base64?

      URL-sicheres Base64 verwendet „-“ und „_“ anstelle von „+“ und „/“. JWTs und einige Dateinameneinbettungen verwenden das URL-sichere Alphabet. Die Dekodierung mit dem falschen Alphabet schlägt bei diesen ersetzten Zeichen fehl.

      Wie viel größer ist Base64 als das Original?

      Etwa ein Drittel größer. Aus drei Bytes werden vier Zeichen, das Verhältnis beträgt also 4/3 vor Auffüllung und Zeilenumbrüchen. Aus einer Nutzlast von 3.000 Byte werden 4.000 Zeichen Base64.

      Kann Base64 eine Datei kodieren, nicht nur Text?

      Ja. Der Dateimodus liest den Upload im Browser und kodiert seine Rohbytes. Der umgekehrte Pfad dekodiert in einen herunterladbaren Blob. Große Dateien erhöhen den Speicherverbrauch im Tab; Halten Sie die Uploads bescheiden.

      Warum sieht dekodierter Text nach einer korrekten Dekodierung falsch aus?

      Die Base64-Schicht hat die Bytes wiederhergestellt, aber die zur Interpretation dieser Bytes verwendete Zeichenkodierung stimmt nicht mit der des Produzenten überein. Versuchen Sie es zuerst mit UTF-8 und dann mit dem Zeichensatz, den das Quellsystem tatsächlich verwendet.

      Lädt dieses Tool eingefügte Geheimnisse hoch?

      Nein. Die Kodierung und Dekodierung erfolgt lokal. In die Box eingefügte API-Schlüssel, Token und Zertifikatsfragmente werden nicht an einen Server gesendet. Dieses Versprechen entspricht der Designregel für alle Codierungsseiten in Quick Calculators.

      Ist Base64 dasselbe wie URL-Codierung?

      Nein. Base64 ordnet Bytes für den Transport einem 64-stelligen Alphabet zu. Bei der URL-Kodierung (Prozentkodierung) werden reservierte Zeichen innerhalb von URIs gemäß RFC 3986 maskiert. Sie lösen unterschiedliche Probleme und ersetzen einander nicht.

      Welcher RFC definiert das Alphabet?

      RFC 4648 definiert die standardmäßigen und URL-sicheren Base64-Alphabete und die hier verwendeten Füllregeln. Ältere Dokumente wie RFC 2045 beschreiben Base64 im MIME-Kontext mit ähnlichen Mechanismen.

      Zusammenfassung

      Base64 kodieren und dekodieren ordnet Bytes dem RFC 4648-Alphabet in 6-Bit-Gruppen zu und kehrt den Prozess lokal im Browser um. „Dog“ wird zu „RG9n“, „Do“ wird zu „RG8=“ und „Dogs“ wird zu „RG9ncw==“, was das Auffüllen von Ein- und Zwei-Byte-Resten veranschaulicht.

      Das URL-sichere Alphabet tauscht „+“/„/“ gegen „-“/„_“ aus, die Ausgabe wächst um etwa ein Drittel und die Wahl des Zeichensatzes entscheidet, welche Bytes der Textmodus in den Encoder einspeist. Es wird nichts eingefügtes hochgeladen.