So wandeln Sie eine Datei in Base64 um
- Legen Sie eine oder mehrere Dateien auf dem Feld ab, nutzen Sie die Dateiauswahl oder fügen Sie kopierte Dateien mit Strg+V ein.
- Wählen Sie Ausgabe als: Reines Base64 (hier die Voreinstellung), Data-URI, HTML
<a download>, JSON sowie die Varianten für Bilder und Schriften. - Optional: URL-sicher ersetzt
+und/durch-und_; Umbruch bei 76 bricht die Zeilen für MIME-E-Mails um. - Ausgabe kopieren, oder Als .txt speichern, um
filename.ext.b64.txtzu erhalten.
Bei mehreren Dateien zeigt eine Liste jeden Namen mit Original- und kodierter Größe. Anzeigen zeigt ein einzelnes Ergebnis, und Alles als JSON kopieren kopiert alle Dateien als Array von {name, type, size, data}-Objekten. Das lässt sich schnell in eine Fixture-Datei oder ein Seed-Skript einfügen.
Was die Ausgabeoptionen für Nicht-Bilddateien bedeuten
| Ausgabe als | Ergebnis für report.zip | Wofür |
|---|---|---|
| Reines Base64 | UEsDBBQAAAAI... | API-Felder, Umgebungsvariablen, Konfigurationswerte |
| Data-URI | data:application/zip;base64,UEsDBBQA... | URLs in HTML oder JavaScript |
HTML <a download> | <a href="data:application/zip;base64,..." download="report.zip">report.zip</a> | ein in sich geschlossener Download-Link |
| JSON | {"name": "report.zip", "type": "application/zip", "size": 323, "data": "UEsDBBQA..."} | Test-Fixtures, eigene Upload-Endpunkte |
Die JSON-Schlüssel sind fest (name, type, size, data). Erwartet eine API andere Namen, benennen Sie sie nach dem Einfügen um. size ist die ursprüngliche Dateigröße in Bytes, damit der Empfänger prüfen kann, ob die dekodierte Länge passt.
Der MIME-Typ in der Data-URI und im JSON-Feld type stammt von Ihrem Browser. Kennt der Browser die Datei nicht, rät das Tool anhand der Endung, und klappt auch das nicht, verwendet es application/octet-stream. Davon hängt nur die Kennzeichnung ab; das Base64 bleibt in jedem Fall gleich.
Binärdateien in CI-Secrets und Konfiguration
Ein häufiger Grund, eine ganze Datei zu kodieren, ist ein Secret-Speicher, der nur Text aufnimmt: CI-Variablen, .env-Dateien, Kubernetes Secrets. Signatur-Keystores, Zertifikate und Service-Account-Dateien kommen als eine Base64-Zeile hinein und werden in der Pipeline wiederhergestellt:
echo "$KEYSTORE_B64" | base64 -d > release.keystore
Lassen Sie Umbruch bei 76 dafür ausgeschaltet. Ein Wert mit Zeilenumbrüchen wird von der Secret-Oberfläche oder der Shell oft verstümmelt. Kubernetes speichert jeden Wert unter data: auf diese Weise, und der Kubernetes-Secret-Decoder liest sie wieder aus.
An den ersten Zeichen erkennen, was Sie kodiert haben
Die ersten Bytes der meisten Dateiformate sind eine feste Signatur, der Anfang des Base64 verrät also den Typ ohne Dekodieren. Einige häufige:
| Dateityp | Base64 beginnt mit |
|---|---|
JVBERi0 | |
| ZIP, DOCX, XLSX, PPTX, JAR, APK | UEsDB |
gzip (.gz, .tgz) | H4sI |
| 7-Zip | N3q8ryc |
| Windows-EXE oder -DLL | TVqQ (die meisten Dateien), immer TV |
| Linux-ELF-Binärdatei | f0VMRg |
| SQLite-Datenbank | U1FMaXRlIGZvcm1hdCAz |
| MP3 mit ID3-Tag | SUQz |
| PNG | iVBORw0KGgo |
| JSON-Objekt | eyJ (für {") |
Eine längere Liste steht unter häufige Base64-Präfixe. Beim Dekodieren mit Base64 in Datei wird der Typ auf dieselbe Weise erkannt.
Größe, Speicher und große Dateien
Die Base64-Ausgabe ist 4/3 so groß wie die Eingabe, aufgerundet auf ein Vielfaches von 4 Zeichen. Eine Datei mit 1 MB wird zu 1.398.104 Zeichen, mit Umbruch bei 76 kommen weitere 18.396 Zeilenumbruchzeichen hinzu. Die Zähler unter der Ausgabe zeigen beide Größen und den Zuwachs in Prozent.
Alles läuft im Browser-Tab, die praktische Grenze ist also der Arbeitsspeicher Ihres Geräts:
- Das Textfeld zeigt die ersten 4 MB der Ausgabe; Ausgabe kopieren und Als .txt speichern verwenden immer das vollständige Ergebnis.
- Ausgabe kopieren ist bei Ausgaben über rund 48 MB deaktiviert.
- Dateien über etwa 48 MB werden stückweise kodiert, und das Ergebnis gibt es nur über Als .txt speichern.
Ist eine Datei so groß, fragen Sie sich, ob Base64 der richtige Transportweg ist. Ein Multipart-Upload oder eine direkte binäre Übertragung vermeidet die 33 % Mehraufwand und die Speicherspitze auf beiden Seiten. Der Größenrechner zeigt die kodierte Größe, bevor Sie anfangen.
Eine Datei auf der Kommandozeile oder im Code kodieren
Linux mit GNU coreutils (-w 0 schaltet den standardmäßigen Umbruch nach 76 Zeichen ab):
base64 -w 0 report.zip > report.zip.b64
macOS (base64 bricht dort standardmäßig nicht um):
base64 -i report.zip -o report.zip.b64
Windows PowerShell:
[Convert]::ToBase64String([IO.File]::ReadAllBytes("C:\data\report.zip")) | Set-Content report.zip.b64
Python:
import base64
from pathlib import Path
encoded = base64.b64encode(Path("report.zip").read_bytes()).decode("ascii")
Wie Sie große Dateien als Stream verarbeiten, ohne sie in den Speicher zu laden, zeigen Base64 in Python, Node.js, Java und PHP.
Häufige Probleme
- Zeilenumbrüche in der Ausgabe. GNU
base64bricht standardmäßig nach 76 Zeichen um,openssl base64nach 64, undcertutil -encodefügt zusätzlich Kopfzeilen ein. Viele JSON-APIs und Umgebungsvariablen brauchen eine einzige Zeile. Verwenden Sie-w 0,openssl base64 -Aoder dieses Tool ohne Umbruch. application/octet-streamin der Data-URI. Der Browser kannte den Typ nicht, und die Endung stand nicht in der Liste des Tools. Die Bytes stimmen trotzdem; ersetzen Sie den MIME-Typ im Präfix, wenn es dem Empfänger darauf ankommt.- Ausgabe kopieren ist ausgegraut. Das Ergebnis liegt über der Kopiergrenze von rund 48 MB. Als .txt speichern funktioniert weiterhin, und die meisten Tools, die die Zeichenkette brauchen, können sie aus einer Datei lesen.
- Im JSON steht für eine Datei
"data": null. In einem Stapel werden Dateien über etwa 48 MB nur für den Download stückweise kodiert, daher lässt Alles als JSON kopieren ihre Daten weg. Kodieren Sie diese Datei einzeln und speichern Sie sie als .txt. - Die dekodierte Datei ist kleiner als das Original. Die Zeichenkette wurde abgeschnitten. Vergleichen Sie die dekodierte Länge mit dem Wert
sizein der JSON-Ausgabe. - Verstümmelte Ausgabe, obwohl die Eingabe Text war. Base64 lässt die Bytes, wie sie sind, einschließlich der ursprünglichen Zeichenkodierung. Eine UTF-16-Textdatei ergibt beim Dekodieren UTF-16, nicht UTF-8. Für Text, den Sie eintippen, nutzen Sie Text in Base64, dort können Sie den Zeichensatz wählen.
Häufige Fragen
Welche Dateitypen kann ich in Base64 umwandeln?
Jede Datei. Base64 kodiert Bytes und kümmert sich nicht um ihre Bedeutung, ausführbare Dateien, Archive, Datenbanken und Dokumente funktionieren also genauso wie Text. Formatspezifische Seiten wie PDF in Base64 ergänzen nur Hinweise zu diesem Format.
Gibt es eine Größenbeschränkung?
Eine feste Grenze gibt es nicht, da die Arbeit in Ihrem Browser passiert. Ausgaben bis etwa 48 MB lassen sich kopieren, darüber verwenden Sie Als .txt speichern. Dateien über rund 48 MB werden stückweise kodiert und nur als Download angeboten.
Wie kodiere ich unter Windows eine Datei ohne Zusatztools in Base64?
PowerShell schafft das in einer Zeile: [Convert]::ToBase64String([IO.File]::ReadAllBytes("C:\path\file.bin")). certutil -encode funktioniert auch, fügt aber Zeilen mit -----BEGIN CERTIFICATE----- hinzu und bricht die Ausgabe um, was Sie dann wieder entfernen müssen.
Welchen MIME-Typ verwendet die Data-URI?
Den Typ, den Ihr Browser für die Datei meldet. Meldet er keinen, rät das Tool anhand der Endung und greift sonst auf application/octet-stream zurück. Ändern Sie das Präfix von Hand, wenn der Empfänger einen bestimmten Typ braucht.
Wie mache ich aus dem Base64 wieder eine Datei?
Mit Base64 in Datei. Es erkennt den Dateityp an den dekodierten Bytes und schlägt eine passende Endung vor.