Bestand-naar-Base64-converter

Sleep een willekeurig bestand hierheen, of het nu een document, archief, lettertype, certificaat of programma is, en krijg de Base64-codering als kale tekst of als data-URI. Alles draait lokaal in je browser.

Werkt volledig in je browser. Er wordt niets geüpload.

Zo gebruik je het

  1. Sleep een bestand naar het sleepvak of klik erop om een bestand op je apparaat te kiezen (tot 100 MB).
  2. Kies bij Uitvoer wat je nodig hebt: kale Base64 voor API's en configuratiebestanden, of een data-URI voor HTML en CSS.
  3. Zet Regels afbreken na 76 tekens alleen aan als het doel regels in MIME-stijl verwacht, zoals de tekst van een e-mail.
  4. Controleer de bestandsnaam, het MIME-type en de groottes en kopieer daarna het resultaat of download het als .txt-bestand.

Waarom een bestand als Base64 coderen?

Veel formaten die gegevens tussen systemen uitwisselen, kunnen alleen tekst overbrengen. JSON, XML, YAML, HTML en e-mailheaders kunnen geen willekeurige bytes bevatten, omdat een bestand nulbytes, bytereeksen die geen geldige tekst vormen of regeleinden kan hebben die een tekstparser zou wijzigen. Base64 zet elke 3 bytes van het bestand om in 4 tekens uit een set van 64 letters, cijfers, + en /. Zo kan elk bestand als gewone string worden verstuurd en weer worden gedecodeerd tot precies dezelfde bytes.

De prijs is de grootte: de gecodeerde tekst is ongeveer 33% groter dan het bestand, en regelafbrekingen voegen daar nog iets aan toe. Een bestand van 3 MB wordt ongeveer 4 MB aan Base64.

Veelvoorkomende toepassingen

  • JSON- en XML-API's. Endpoints die geen multipart-formulieruploads accepteren, verwachten het bestand vaak als Base64-string in één veld, met de naam en het type in andere velden.
  • E-mailbijlagen. MIME codeert bijlagen in Base64 met regels van maximaal 76 tekens (RFC 2045). Met Regels afbreken na 76 tekens krijg je dezelfde opmaak.
  • Configuratie en secrets. De waarden onder data in een Kubernetes Secret zijn Base64, dus een TLS-certificaat, keystore of licentiebestand moet worden gecodeerd voordat het in het manifest komt. CI-systemen bewaren binaire secrets vaak op dezelfde manier in omgevingsvariabelen.
  • Databases en broncode. Een klein binair bestand, zoals een lettertype, een geluid of een testfixture, kun je in een tekstkolom of een stringconstante opslaan in plaats van in een apart bestand.

Voor afbeeldingen biedt Afbeelding naar Base64 ook verkleinen en kant-en-klare HTML- en CSS-fragmenten. Wil je Base64 weer omzetten in een bestand, gebruik dan Base64 naar bestand.

Kale Base64 of data-URI?

Kale Base64 bevat alleen de gecodeerde bytes. Dat is wat API's, Kubernetes, databases en de meeste programmeerbibliotheken verwachten, meestal naast een apart veld voor de bestandsnaam of het content-type.

Een data-URI voegt een voorvoegsel met het MIME-type toe, bijvoorbeeld data:application/pdf;base64,, zodat een browser de hele string als URL kan gebruiken in src, href of CSS url(). Stuur dat voorvoegsel niet mee naar een API die om gewone Base64 vraagt; veel decoders weigeren het. Wil je het MIME-type zelf instellen of procentcodering gebruiken, probeer dan de Data-URI-generator.

Laat regelafbreking uit voor JSON, YAML en broncode. Een JSON-string mag geen echte regeleinden bevatten, en afgebroken waarden in YAML gaan gemakkelijk stuk.

Een bestand coderen op de opdrachtregel

# Linux (GNU coreutils): -w 0 schakelt de standaardafbreking na 76 tekens uit
base64 -w 0 report.docx > report.txt

# macOS
base64 -i report.docx -o report.txt

# Windows PowerShell
[Convert]::ToBase64String([IO.File]::ReadAllBytes("C:\files\report.docx"))

# Kubernetes codeert het bestand voor je
kubectl create secret generic app-cert --from-file=tls.crt

Veelgestelde vragen

Is er een maximale bestandsgrootte?

Je kunt bestanden tot 100 MB coderen. De uitvoer is ongeveer een derde groter, dus een bestand van 100 MB levert zo'n 133 MB tekst op. Zoveel tekst weergeven kan de pagina traag maken, dus gebruik bij grote bestanden Downloaden in plaats van kopiëren uit het uitvoervak.

Worden mijn bestanden naar een server geüpload?

Nee. Het bestand wordt door JavaScript in je browser gelezen en gecodeerd en er gaat niets over het netwerk, dus certificaten, sleutels en privédocumenten blijven op je apparaat.

Comprimeert of versleutelt Base64 het bestand?

Geen van beide. Base64 maakt de gegevens ongeveer 33% groter en iedereen kan ze decoderen. Moet het bestand vertrouwelijk blijven, versleutel het dan vóór het coderen; is de grootte belangrijk, comprimeer het dan eerst, bijvoorbeeld als ZIP- of gzip-archief.

Waarom bevat de uitvoer regeleinden?

De optie Regels afbreken na 76 tekens staat aan. Dat komt overeen met het MIME-formaat van e-mail, maar de meeste API's, JSON-documenten en Kubernetes-manifesten verwachten één doorlopende regel, dus zet de optie daarvoor uit.

Wat is het verschil met de Base64-encoder?
De Base64-encoder is gemaakt voor tekst, met tekencoderingen en Base64-varianten. Deze tool is gemaakt voor bestanden: hij leest de ruwe bytes van elk bestand, toont het MIME-type en kan meteen een data-URI maken.