So wandeln Sie Text in Base64 um
- Tippen oder fügen Sie den String in Eingabe · Text ein. Alles, was Sie eingeben, wird exakt kodiert, auch Leerzeichen und Zeilenumbrüche.
- Das Base64 erscheint in Ausgabe · Base64. Die Angabe Eingabe unter den Schaltflächen zeigt, wie viele Bytes aus Ihrem Text geworden sind.
- Lassen Sie Zeichensatz auf UTF-8, es sei denn, das System, das den Wert dekodiert, erwartet etwas anderes.
- Aktivieren Sie URL-sicher (- _) und Ohne Padding (=), wenn der String in eine URL oder ein Token kommt.
- Drücken Sie Ausgabe kopieren, oder Herunterladen, um ihn als
base64.txtzu speichern.
Für den Rückweg nutzen Sie Base64 in Text, oder drücken Sie Tauschen, um das Ergebnis direkt hier zu dekodieren.
Ein String, mehrere mögliche Base64-Werte
Base64 kodiert Bytes, und ein String wird erst über einen Zeichensatz zu Bytes. Deshalb können dieselben fünf Buchstaben vier verschiedene Ergebnisse liefern:
| String | Zeichensatz | Bytes | Base64 |
|---|---|---|---|
Grüße | UTF-8 | 7 | R3LDvMOfZQ== |
Grüße | Windows-1252 oder ISO-8859-1 | 5 | R3L832U= |
Grüße | UTF-16LE | 10 | RwByAPwA3wBlAA== |
Grüße | UTF-16BE | 10 | AEcAcgD8AN8AZQ== |
Auch unsichtbare Zeichen zählen. Hello ist SGVsbG8=, Hello mit Leerzeichen am Ende ist SGVsbG8g, und Hello gefolgt von einem Windows-Zeilenende ist SGVsbG8NCg==. Zeilenenden sind eine klassische Falle bei mehrzeiligen Werten: line1 und line2, verbunden durch \n, ergeben bGluZTEKbGluZTI=, verbunden durch \r\n dagegen bGluZTENCmxpbmUy. Sind sich zwei Systeme über einen Wert uneinig, vergleichen Sie zuerst die Byte-Anzahl.
Wie lang der Base64-String wird
Je 3 Bytes Eingabe werden zu 4 Zeichen, und eine letzte Gruppe aus 1 oder 2 Bytes wird mit = auf 4 aufgefüllt.
| Bytes Eingabe | Base64-Zeichen | Beispiel (x wiederholt) |
|---|---|---|
| 1 | 4 | eA== |
| 2 | 4 | eHg= |
| 3 | 4 | eHh4 |
| 4 | 8 | eHh4eA== |
| 10 | 16 | eHh4eHh4eHh4eA== |
Ein String wächst also um etwa ein Drittel, und um mehr, wenn Nicht-ASCII-Zeichen in UTF-8 jeweils mehrere Bytes belegen. Die Seite zum Base64-Größen-Overhead enthält die genauen Zahlen für umbrochene Ausgabe.
Wo kodierte Strings landen
Strings werden meist in Base64 umgewandelt, um sie durch Stellen zu bringen, die Sonderzeichen nicht mögen:
- Umgebungsvariablen und CI-Secrets, in denen ein Wert mit Anführungszeichen,
$oder Zeilenumbrüchen verstümmelt würde. Auspostgres://app:s3cret@db:5432/appwirdcG9zdGdyZXM6Ly9hcHA6czNjcmV0QGRiOjU0MzIvYXBw, eine Zeile ohne irgendetwas zu maskieren. - Kubernetes Secrets, deren
data:-Werte Base64 sein müssen. Der Kubernetes-Secret-Decoder liest sie zurück. - HTTP-Header, zum Beispiel
Authorization: Basicmit kodiertemuser:password. Der Basic-Auth-Header-Generator baut den vollständigen Header. - JSON- und XML-Felder, die beliebigen Text tragen müssen, ohne dass Escape-Regeln in die Quere kommen (JSON in Base64).
Nichts davon verbirgt den Wert. Jeder, der den String hat, kann ihn dekodieren, behandeln Sie ein kodiertes Secret also wie ein unverschlüsseltes Secret; siehe Kodierung vs. Verschlüsselung.
String in Base64 im Code
import base64
base64.b64encode("Grüße".encode("utf-8")).decode("ascii") # 'R3LDvMOfZQ=='
base64.b64encode("Grüße".encode("cp1252")).decode("ascii") # 'R3L832U='
// Node.js
Buffer.from("Grüße", "utf8").toString("base64"); // "R3LDvMOfZQ=="
Buffer.from("Grüße", "utf16le").toString("base64"); // "RwByAPwA3wBlAA=="
In beiden Sprachen muss der Schritt vom String zu Bytes ausdrücklich dastehen, und genau dort steckt die Wahl des Zeichensatzes. Mehr auf den Seiten Python und Node.js.
Häufige Fragen
Wie wandle ich einen String in Base64 um?
Machen Sie aus dem String mit einem Zeichensatz Bytes (fast überall UTF-8) und kodieren Sie diese Bytes in Base64. Das Tool oben erledigt beides; in Python ist es base64.b64encode(s.encode("utf-8")).decode().
Ergibt derselbe Text immer dasselbe Base64?
Nur wenn die Bytes gleich sind. Grüße ist in UTF-8 R3LDvMOfZQ==, in Windows-1252 aber R3L832U=, und auch ein zusätzliches Leerzeichen oder ein Zeilenumbruch ändert das Ergebnis.
Wie lang wird der Base64-String?
4 × ⌈n / 3⌉ Zeichen für n Bytes Eingabe, ohne Zeilenumbrüche. Ein String mit 10 Bytes ergibt 16 Zeichen; der Größenrechner berechnet es für jede Länge.
Kann ich einen Base64-String in eine Konfigurationsdatei oder Umgebungsvariable schreiben?
Ja, das ist einer der Hauptzwecke: Jeder Wert, auch mit Zeilenumbrüchen und Anführungszeichen, wird zu einer einzigen Zeile aus sicheren Zeichen. Damit es eine Zeile bleibt, lassen Sie Zeilenumbruch auf Keiner.