Base64 File Encoder

Beliebige Dateien zu Base64 konvertieren — PDF, ZIP, Bilder und mehr

Datei hierher ziehen oder klicken zum Hochladen

Jede Dateityp — PDF, ZIP, Bilder, Binärdateien

Was ist Base64-Dateikodierung?

Base64-Dateikodierung konvertiert Binärdateien (PDFs, ZIPs, Bilder, Ausführbare, Schriftarten, Audio) in einfachen ASCII-Text mit dem in RFC 4648 definierten Alphabet. Jede drei Bytes binäre Eingabe werden zu vier Base64-Zeichen und erzeugen eine Textdarstellung für textbasierte Kanäle: JSON-API-Payloads, XML-Dokumente, E-Mail-Körper, HTML-Attribute und Umgebungsvariablen.

Im Gegensatz zur Text-zu-Base64-Kodierung (die auf Strings funktioniert) liest die Datei-zu-Base64-Kodierung den Raw-Byte-Stream jeder Datei unabhängig vom Format. PDFBinär-Header, ZIP-Kompressionsblöcke und PNG-Pixeldaten werden identisch behandelt: als Oktett-Sequenz zur Neucodierung. Das Ergebnis ist immer gültiges ASCII, sicher einzubetten überall wo druckbare Zeichen akzeptiert werden.

Der Trade-off ist die Größe: Base64-Ausgabe ist etwa 33% größer als das Original-Binär. Für ein 1-MB-PDF bedeutet das etwa 1,33 MB Base64-Text. Dieser Overhead ist der Kodierung inhärent und kann nicht vermieden werden. Trotzdem bleibt Base64-Dateikodierung die Standardmethode zum Einbetten von Binärdaten in Text-Only-Formate, spezifiziert in MIME (RFC 2045), Daten-URIs (RFC 2397) und JSON Web Tokens (RFC 7519).

Warum diesen Base64-Datei-Encoder verwenden?

Dieses Tool kodiert Dateien zu Base64 direkt im Browser mit der FileReader-API. Keine Datei wird auf einen Server hochgeladen — die gesamte Konvertierung erfolgt Client-seitig in JavaScript.

🛡
Datenschutz-First Verarbeitung
Ihre Datei verlässt Ihr Gerät nie. Die FileReader-API liest die Datei lokal in den Speicher, und die Base64-Ausgabe wird vollständig im Browser erzeugt. Kein Netzwerkaufruf erfolgt.
Sofortiges Drag-and-Drop
Ziehen Sie eine beliebige Datei aufs Tool und sehen Sie die Base64-Ausgabe sofort. Kein Upload-Warten, keine Fortschrittsbalken, keine Server-seitigen Dateigröße-Limits.
📁
Jedes Dateiformat
Kodieren Sie PDFs, ZIPs, Bilder, Schriftarten, Audiodateien, WebAssembly-Module oder jedes andere Binärformat. Der Encoder behandelt alle Dateien als Raw-Byte-Streams — das Format ist egal.
🔒
Kein Konto erforderlich
Nutzen Sie das Tool sofort ohne Registrierung, Anmeldung oder Cookie-Zustimmung. Die Ausgabe kann mit einem Klick kopiert oder als .b64.txt Datei heruntergeladen werden.

Base64-Dateikodierung Anwendungsfälle

Frontend-Entwickler
Betten Sie kleine Icons, Schriftarten oder SVGs direkt als Data-URIs in CSS oder HTML ein, um zusätzliche HTTP-Anfragen zu eliminieren. Ein 2-KB-Icon inline als Base64 spart einen Netzwerk-Roundtrip, der 50-200 ms Latenz hinzufügen würde.
Backend-Ingenieur
Fügen Sie Datei-Anhänge in JSON-API-Payloads ein, wenn das Transportprotokoll keine Multipart-Uploads unterstützt. Kodieren Sie PDFs, Berichte oder signierte Dokumente vor dem Senden als String-Felder in REST- oder GraphQL-Responses.
DevOps / Infrastruktur
Speichern Sie binäre Konfigurationsdateien (TLS-Zertifikate, SSH-Schlüssel, Lizenzdateien) als Base64-Strings in Umgebungsvariablen, Kubernetes Secrets oder Terraform tfvars, wo Raw-Binärwerte nicht erlaubt sind.
QA / Test-Ingenieur
Erzeugen Sie Base64-Datei-Fixtures für automatisierte Tests, die Upload-Endpoints, E-Mail-Anhang-Behandlung oder Dokumentverarbeitungs-Pipelines überprüfen, ohne binäre Testdateien in der Versionskontrolle zu verwalten.
Daten-Ingenieur
Serialisieren Sie binäre Blobs (Parquet-Metadaten, Protobuf-Schemata, kleine binäre Assets) zu Base64 zur Speicherung in JSON-basierten Datenkatalogen, Konfigurationsspeichern oder Migrations-Skripten.
Schüler / Lernender
Beobachten Sie, wie Binärdateien zu Text werden, indem Sie kleine Dateien kodieren und die Ausgabe inspizieren. Vergleichen Sie die Base64-Länge mit der Original-Dateigröße, um den 33%-Overhead aus RFC 4648 zu überprüfen.

Base64-Datei-Größen-Overhead

Base64-Kodierung erhöht die Datengröße um genau ein Drittel. Alle 3 Input-Bytes erzeugen 4 Output-Zeichen (jedes repräsentiert 6 Bits). Padding-Zeichen (=) werden hinzugefügt, wenn die Input-Länge nicht ein Vielfaches von 3 ist. Die Tabelle unten zeigt die Beziehung zwischen Original-Dateigröße und kodierter Output-Größe.

DateigrößeRaw BytesBase64 BytesOverhead
1 KB1,024 B1,368 B+33.3%
10 KB10,240 B13,656 B+33.4%
100 KB102,400 B136,536 B+33.3%
1 MB1,048,576 B1,398,104 B+33.3%
5 MB5,242,880 B6,990,508 B+33.3%
10 MB10,485,760 B13,981,016 B+33.3%

Daten-URI und MIME-Typ Referenz

Ein Daten-URI bettet Dateiinhalt direkt in HTML, CSS oder JavaScript mit dem Format data:[MIME-Typ];base64,[kodierte Daten] ein. Der MIME-Typ teilt dem Browser mit, wie die dekodierten Bytes zu interpretieren sind. Unten sind häufige Datei-Erweiterungen, ihre MIME-Typen und das entsprechende Daten-URI-Präfix.

ErweiterungMIME-TypDaten-URI-Präfix
.pdfapplication/pdfdata:application/pdf;base64,...
.zipapplication/zipdata:application/zip;base64,...
.pngimage/pngdata:image/png;base64,...
.jpgimage/jpegdata:image/jpeg;base64,...
.gifimage/gifdata:image/gif;base64,...
.svgimage/svg+xmldata:image/svg+xml;base64,...
.woff2font/woff2data:font/woff2;base64,...
.mp3audio/mpegdata:audio/mpeg;base64,...
.wasmapplication/wasmdata:application/wasm;base64,...
.binapplication/octet-streamdata:application/octet-stream;base64,...

Code-Beispiele

Diese ausführbaren Beispiele zeigen, wie man eine Binärdatei liest und zu Base64 in JavaScript, Python, Node.js, Bash und Go kodiert. Jedes Snippet erzeugt Standard-Base64 (RFC 4648 Abschnitt 4) mit Padding.

JavaScript (browser)
// Read a file from an <input> element and encode to Base64
const input = document.querySelector('input[type="file"]')
input.addEventListener('change', (e) => {
  const file = e.target.files[0]
  const reader = new FileReader()
  reader.onload = () => {
    const base64 = reader.result.split(',')[1]
    console.log(base64) // → "JVBERi0xLjQK..." (raw Base64, no data URI prefix)
  }
  reader.readAsDataURL(file)
})

// Convert a Blob to Base64 with async/await
async function blobToBase64(blob) {
  const buffer = await blob.arrayBuffer()
  const bytes = new Uint8Array(buffer)
  let binary = ''
  bytes.forEach(b => binary += String.fromCharCode(b))
  return btoa(binary) // → standard Base64 string
}
Python
import base64
from pathlib import Path

# Encode a file to Base64
file_bytes = Path('document.pdf').read_bytes()
encoded = base64.b64encode(file_bytes).decode('ascii')
print(encoded[:40])  # → "JVBERi0xLjQKJeLjz9MKMSAwIG9iago8PA..."

# Write encoded output to a text file
Path('document.b64.txt').write_text(encoded)

# Build a data URI from a file
mime_type = 'application/pdf'
data_uri = f'data:{mime_type};base64,{encoded}'
print(data_uri[:60])  # → "data:application/pdf;base64,JVBERi0xLj..."
Node.js
import { readFileSync, writeFileSync } from 'fs'

// Encode a file to Base64
const buffer = readFileSync('archive.zip')
const base64 = buffer.toString('base64')
console.log(base64.length) // → 1398104 (for a ~1 MB file)

// Save Base64 output to a file
writeFileSync('archive.b64.txt', base64)

// Build a data URI
const mime = 'application/zip'
const dataUri = `data:${mime};base64,${base64}`
CLI (bash)
# Encode a file to Base64 (macOS / Linux)
base64 < document.pdf > document.b64.txt

# Encode with no line wrapping (GNU coreutils)
base64 -w 0 < document.pdf > document.b64.txt

# Encode and copy to clipboard (macOS)
base64 < image.png | pbcopy

# Encode with OpenSSL (available everywhere)
openssl base64 -in archive.zip -out archive.b64.txt

# Pipe directly into curl for API upload
base64 -w 0 < photo.jpg | curl -X POST -d @- https://api.example.com/upload
Go
package main

import (
	"encoding/base64"
	"fmt"
	"os"
)

func main() {
	data, err := os.ReadFile("document.pdf")
	if err != nil {
		panic(err)
	}
	encoded := base64.StdEncoding.EncodeToString(data)
	fmt.Println(len(encoded)) // → 1398104 (for a ~1 MB file)

	// Write to file
	os.WriteFile("document.b64.txt", []byte(encoded), 0644)
}

Häufig gestellte Fragen

Wie groß darf die maximale Dateigröße sein, die ich zu Base64 kodieren kann?
Dieses Tool läuft vollständig in Ihrem Browser, daher hängt das Limit vom verfügbaren Speicher ab. Moderne Browser handhaben Dateien bis 50-100 MB problemlos. Für größere Dateien verwenden Sie ein Kommandozeilen-Tool wie base64 (macOS/Linux) oder Pythons base64-Modul, die die Datei in Chunks verarbeiten und nicht die gesamte Ausgabe auf einmal in den Speicher laden.
Wie viel größer ist die Base64-Ausgabe im Vergleich zur Original-Datei?
Base64-Ausgabe ist immer etwa 33,3% größer als die Eingabe. Spezifisch ist die Formel ceil(n / 3) * 4, wobei n die Anzahl der Input-Bytes ist. Eine 1-MB-Datei erzeugt etwa 1,33 MB Base64-Text. Dieser Overhead ist der Kodierung inhärent und kann nicht reduziert werden.
Kann ich eine Datei zu Base64 kodieren und als Daten-URI verwenden?
Ja. Stellen Sie dem Base64-String das MIME-Typ-Präfix voran: data:application/pdf;base64, gefolgt vom kodierten Inhalt. Browser dekodieren und rendern den Daten-URI wie eine reguläre Datei. Daten-URIs funktionieren in img src, link href, CSS url() und Anker-Download-Attributen.
Ist Base64-Datei-Kodierung dasselbe wie Verschlüsselung?
Nein. Base64 ist eine Kodierung, keine Verschlüsselung. Sie transformiert Binärdaten in eine trivial reversible Text-Darstellung — jeder mit einem Base64-Decoder kann die Original-Datei wiederherstellen. Base64 bietet keine Vertraulichkeit, Integrität oder Authentizität. Wenn Sie Dateiinhalte schützen müssen, verschlüsseln Sie die Datei zunächst (z.B. mit AES-256-GCM), dann kodieren Sie den Geheimtext zu Base64 für den Transport.
Warum endet mein Base64-String mit einem oder zwei =-Zeichen?
Die =-Zeichen sind Padding. Base64 verarbeitet Input in 3-Byte-Gruppen und erzeugt 4 Output-Zeichen pro Gruppe. Wenn die Dateigröße nicht ein Vielfaches von 3 ist, werden ein oder zwei Padding-Zeichen hinzugefügt, sodass die Output-Länge immer ein Vielfaches von 4 ist. Ein = bedeutet, die letzte Gruppe hatte 2 Bytes; zwei == bedeutet, die letzte Gruppe hatte 1 Byte.
Wie kodiere ich eine Datei zu Base64 von der Kommandozeile?
Auf macOS und Linux verwenden Sie das base64-Befehl: base64 < file.pdf > file.b64.txt. Auf GNU/Linux, add -w 0 um Zeilenumbruch zu unterdrücken. Sie können auch OpenSSL verwenden: openssl base64 -in file.pdf -out file.b64.txt. Auf Windows PowerShell: [Convert]::ToBase64String([IO.File]::ReadAllBytes('file.pdf')).
Wann sollte ich Base64-Datei-Kodierung statt multipart/form-data verwenden?
Verwenden Sie Base64, wenn der Transport ein Text-Only-Format benötigt — JSON-APIs, XML-RPC, Umgebungsvariablen oder Kubernetes Secrets. Verwenden Sie multipart/form-data beim Hochladen von Dateien über HTML-Formulare oder REST-Endpoints, die binäre Streams unterstützen. Multipart ist effizienter, da es den 33%-Größen-Overhead vermeidet, erfordert aber, dass der Server Multipart-Grenzen analysiert.