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.
Ergebnisse aktualisieren sich beim Tippen. Ctrl/Cmd+Enter kopiert das Hauptergebnis.
Ergebnis
—
Bitansicht
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
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
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
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
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
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“.
| Input | Bytes | Encoded | Padding |
|---|---|---|---|
| Dog | 3 | RG9n | keines |
| Do | 2 | RG8= | ein = |
| Dogs | 4 | RG9ncw== | 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
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 range | Characters |
|---|---|
| 0 to 25 | A to Z |
| 26 to 51 | a to z |
| 52 to 61 | 0 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
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
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
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.
| Charset | Typical use |
|---|---|
| UTF-8 | Default for modern text and APIs |
| Windows-1252 | Legacy Western European text |
| UTF-16 LE / BE | Some Windows and Java payloads |
| Shift JIS | Older Japanese text |
| Big5 | Older 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.