Base64 File Encoder

Codeer elk bestand naar Base64 — PDF, ZIP, afbeeldingen en meer

Sleep een bestand hierheen of klik om te uploaden

Elk bestandstype — PDF, ZIP, afbeeldingen, binaire bestanden

Wat is Base64-bestandscodering?

Base64-bestandscodering converteert binaire bestanden — PDF's, ZIP's, afbeeldingen, executables, lettertypen, audio — naar gewone ASCII-tekst met behulp van het alfabet dat in RFC 4648 is gedefinieerd. Elke drie bytes binaire invoer worden vier Base64-tekens, waardoor een tekstrepresentatie ontstaat die kan reizen via kanalen die uitsluitend voor tekst zijn ontworpen: JSON API-payloads, XML-documenten, e-mailbody's, HTML-attributen en omgevingsvariabelen.

In tegenstelling tot tekst-naar-Base64-codering (die op strings werkt) leest bestand-naar-Base64-codering de ruwe bytestream van elk bestand ongeacht de indeling. De binaire headers van een PDF, de gecomprimeerde blokken van een ZIP en de pixelgegevens van een PNG worden allemaal identiek behandeld: als een reeks octetten om opnieuw te coderen. Het resultaat is altijd geldige ASCII, veilig om in te sluiten overal waar afdrukkabele tekens acceptabel zijn.

Het compromis is grootte: Base64-uitvoer is ongeveer 33% groter dan het originele binaire bestand. Voor een PDF van 1 MB betekent dit ongeveer 1,33 MB Base64-tekst. Deze overhead is inherent aan codering en geen implementatie kan deze voorkomen. Desondanks blijft Base64-bestandscodering de standaardmethode voor het inbedden van binaire gegevens in tekstenige formaten, gespecificeerd in MIME (RFC 2045), gegevens-URI's (RFC 2397) en JSON Web Tokens (RFC 7519).

Waarom deze Base64-bestandsencoder gebruiken?

Deze tool codeert bestanden naar Base64 rechtstreeks in uw browser met behulp van de FileReader API. Geen bestand wordt naar een server geüpload — de gehele conversie vindt client-side plaats in JavaScript.

🛡
Privacygeoriënteerde verwerking
Uw bestand verlaat uw apparaat nooit. De FileReader API leest het bestand lokaal in het geheugen en de Base64-uitvoer wordt volledig in de browser gegenereerd. Er wordt geen netwerkverzoek gedaan.
Onmiddellijke slepen en neerzetten
Sleep een willekeurig bestand naar de tool en zie de Base64-uitvoer onmiddellijk. Geen uploadwachttijd, geen voortgangsbalken, geen serverbeperkte bestandsgroottegrenzen.
📁
Elk bestandsformaat
Codeer PDF's, ZIP's, afbeeldingen, lettertypen, audiobestanden, WebAssembly-modules of elk ander binair formaat. De encoder behandelt alle bestanden als ruwe bytestreams — de indeling doet er niet toe.
🔒
Geen account vereist
Gebruik de tool onmiddellijk zonder registratie, aanmelding of cookieacceptatie. De uitvoer kan met één klik worden gekopieerd of gedownload als een .b64.txt-bestand.

Base64-bestandscodeeringsgebruik

Frontend-ontwikkelaar
Sluit kleine pictogrammen, lettertypen of SVG's rechtstreeks in CSS of HTML in als gegevens-URI's om extra HTTP-verzoeken te elimineren. Een 2 KB-pictogram inline als Base64 bespaart een netwerkrondgang die 50-200 ms latentie zou toevoegen.
Backend-engineer
Voeg bestandsbijlagen toe aan JSON API-payloads wanneer het transportprotocol geen multipart-uploads ondersteunt. Codeer PDF's, rapporten of ondertekende documenten voordat u ze als tekensvelden in REST- of GraphQL-antwoorden verzendt.
DevOps / Infrastructuur
Sla binaire configuratiebestanden (TLS-certificaten, SSH-sleutels, licentiebestanden) op als Base64-strings in omgevingsvariabelen, Kubernetes Secrets of Terraform tfvars waar onbewerkte binaire waarden niet zijn toegestaan.
QA / Test Engineer
Genereer Base64-bestandsfixtures voor geautomatiseerde tests die uploadendpoints, e-mailbijlageafhandeling of documentverwerkingspijpleidingen verifiëren zonder binaire testbestanden in versiebeheer te beheren.
Data Engineer
Serialiseer binaire blobs (Parquet-metagegevens, Protobuf-schema's, kleine binaire assets) naar Base64 voor opslag in JSON-gebaseerde gegevenscatalogi, configuratiearchieven of migratiescripts.
Student / Leerling
Observeer hoe binaire bestanden tekst worden door kleine bestanden te coderen en de uitvoer te inspecteren. Vergelijk de Base64-lengte met de originele bestandsgrootte om de 33%-overhead uit RFC 4648 te verifiëren.

Base64-bestandsgrootteoverhead

Base64-codering vergroot de gegevensgrootte met exact één derde. Elke 3 invoerbytes produceren 4 uitvoertekens (elk vertegenwoordigt 6 bits). Opvulkarakters (=) worden toegevoegd wanneer de invoerlengte geen veelvoud van 3 is. Onderstaande tabel toont de relatie tussen oorspronkelijke bestandsgrootte en gecodeerde uitvoergrootte.

BestandsgrootteOnbewerkte 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%

Verwijzing gegevens-URI en MIME-type

Een gegevens-URI sluit bestandsinhoud rechtstreeks in HTML, CSS of JavaScript in met behulp van de indeling data:[MIME-type];base64,[gecodeerde gegevens]. Het MIME-type vertelt de browser hoe de gedecodeerde bytes moeten worden geïnterpreteerd. Hieronder staan veel voorkomende bestandsextensies, hun MIME-typen en het bijbehorende gegevens-URI-voorvoegsel.

ExtensieMIME-typeGegevens-URI-voorvoegsel
.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,...

Codevoorbeelden

Deze uitvoerbare voorbeelden tonen hoe u een binair bestand leest en naar Base64 codeert in JavaScript, Python, Node.js, bash en Go. Elk fragment produceert standaard Base64 (RFC 4648 Sectie 4) met opvulling.

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)
}

Veelgestelde vragen

Wat is de maximale bestandsgrootte die ik naar Base64 kan coderen?
Deze tool wordt volledig in uw browser uitgevoerd, dus de limiet is afhankelijk van beschikbaar geheugen. Moderne browsers verwerken bestanden tot 50-100 MB zonder problemen. Voor grotere bestanden gebruikt u een opdrachtregelprogramma zoals base64 (macOS/Linux) of de base64-module van Python, die het bestand in chunks verwerkt en niet de volledige uitvoer tegelijk in het geheugen laadt.
Hoeveel groter is de Base64-uitvoer in vergelijking met het originele bestand?
Base64-uitvoer is altijd ongeveer 33,3% groter dan de invoer. Meer specifiek is de formule ceil(n / 3) * 4, waarbij n het aantal invoerbytes is. Een bestand van 1 MB produceert ongeveer 1,33 MB Base64-tekst. Deze overhead is inherent aan codering en kan niet worden verminderd.
Kan ik een bestand naar Base64 coderen en gebruiken als gegevens-URI?
Ja. Voeg het MIME-typevoorvoegsel aan de Base64-string toe: data:application/pdf;base64, gevolgd door de gecodeerde inhoud. Browsers decoderen en renderen de gegevens-URI zoals een normaal bestand. Gegevens-URI's werken in img src, link href, CSS url() en ankerkenmerkingen.
Is Base64-bestandscodering hetzelfde als versleuteling?
Nee. Base64 is een codering, geen versleuteling. Het transformeert binaire gegevens in een triviaal omkeerbare tekstweergave — iedereen met een Base64-decoder kan het originele bestand herstellen. Base64 biedt geen vertrouwelijkheid, integriteit of authenticatie. Als u bestandsinhoud moet beschermen, versleutelt u eerst het bestand (bijvoorbeeld met AES-256-GCM) en codeert u vervolgens de cijfertekst naar Base64 voor verzending.
Waarom eindigt mijn Base64-string met één of twee =-tekens?
De =-tekens zijn opvulling. Base64 verwerkt invoer in groepen van 3 bytes, waarbij 4 uitvoertekens per groep worden gegenereerd. Wanneer de bestandsgrootte geen veelvoud van 3 is, worden een of twee opvultekens toegevoegd zodat de uitvoerlengte altijd een veelvoud van 4 is. Eén = betekent dat de laatste groep 2 bytes had; twee == betekent dat de laatste groep 1 byte had.
Hoe codeer ik een bestand naar Base64 vanaf de opdrachtregel?
Op macOS en Linux gebruikt u de opdracht base64: base64 < file.pdf > file.b64.txt. Op GNU/Linux voegt u -w 0 toe om lijnomloop te onderdrukken. U kunt ook OpenSSL gebruiken: openssl base64 -in file.pdf -out file.b64.txt. Op Windows PowerShell: [Convert]::ToBase64String([IO.File]::ReadAllBytes('file.pdf')).
Wanneer moet ik Base64-bestandscodering gebruiken in plaats van multipart/form-data?
Gebruik Base64 wanneer het transport een alleen-tekstformaat vereist — JSON API's, XML-RPC, omgevingsvariabelen of Kubernetes Secrets. Gebruik multipart/form-data bij het uploaden van bestanden via HTML-formulieren of REST-eindpunten die binaire streams ondersteunen. Multipart is efficiënter omdat het de 33%-grootte-overhead voorkomt, maar vereist dat de server multipart-grenzen parseert.