fixmint
NL

Base64 uitgelegd: waarom het data groter maakt en hoe je het decodeert

Door · · bijgewerkt 8 november 2026 · 5 min leestijd

Base64 schrijft binaire data als gewone tekst, met 64 tekens: A tot en met Z, a tot en met z, 0 tot en met 9, plus + en /. Elke drie bytes worden vier tekens, dus de tekst is ongeveer een derde langer dan de data die erin zit. Mensen gebruiken het wanneer een formaat alleen tekst accepteert, zoals een data-URL in een webpagina, een JSON-veld of een e-mailbijlage.

Base64 coderen en decoderenBase64-string lezen of makenGratis doen

Waarom tekstformaten het nodig hebben

Veel formaten zijn alleen voor tekst gemaakt. Een e-mailtekst, een JSON-bestand en een CSS-bestand kunnen letters en symbolen veilig bevatten, maar een ruwe afbeelding of zip-bestand bevat bytewaarden die sommige systemen zouden veranderen, afkappen of als besturingstekens lezen. Base64 gebruikt alleen tekens die elk tekstsysteem ongewijzigd doorgeeft, zodat de data intact aankomt. Het is vastgelegd in RFC 4648.

Base64 is een codering, geen geheim. Iedereen kan het zonder sleutel decoderen, dus gebruik het nooit om een wachtwoord of persoonsgegevens te verbergen.

Hoe drie bytes vier tekens worden

Neem het woord Man, dat uit drie bytes bestaat: 77, 97 en 110 in het decimale stelsel. Samen vormen die drie bytes 24 bits. Splits de 24 bits in vier groepen van zes bits, dan is elke groep een getal van 0 tot en met 63, dat naar één teken in het alfabet wijst. Man wordt TWFu.

Zes bits kunnen maar 64 waarden aanduiden, dus vier tekens dragen drie bytes. De uitvoer is daarom ongeveer een derde groter dan de invoer, nog voordat er regeleinden worden toegevoegd.

Als de data niet door drie deelbaar is, vult de encoder het einde aan met =-tekens. Ma, dat uit twee bytes bestaat, wordt TWE=, en M, dat uit één byte bestaat, wordt TQ==. De opvulling vertelt de decoder hoeveel bytes de laatste groep bevat.

Tekst moet eerst als UTF-8 worden gecodeerd

Base64 werkt op bytes, en tekst bestaat uit tekens. Een teken zoals é of ✓ wordt in UTF-8 opgeslagen als meer dan één byte; UTF-8 is de codering die op het web overal wordt gebruikt. De browserfunctie btoa() neemt een string en behandelt elk teken als één byte, dus die faalt bij tekens buiten het basis-Latijnse bereik. Als je hem aanroept met een vinkje, geeft hij een InvalidCharacterError.

De oplossing is de tekst eerst om te zetten naar UTF-8-bytes en die bytes vervolgens te coderen. De zin héllo ✓ is in UTF-8 10 bytes, en de Base64 daarvan is aMOpbGxvIOKckw==. De Base64-tool doet die stap voor je. Bij het decoderen leest hij de bytes weer als UTF-8. Als de bytes geen geldige UTF-8-tekst zijn, behandelt de tool ze als bestand en biedt hij een download aan.

URL-veilige Base64

Het standaardalfabet bevat + en /. In een URL kan + voor een spatie staan, en / scheidt de delen van een pad, dus een Base64-string kan een link breken. De URL-veilige vorm (RFC 4648, sectie 5) gebruikt in plaats daarvan - en _, en laat de =-opvulling meestal weg. Gebruik die als de string in een URL, een bestandsnaam of een token terechtkomt. De decoder accepteert beide vormen, met of zonder opvulling.

Komt de Base64 uit een link, decodeer eerst de URL. Een waarde die in een link procent-gecodeerd is, moet eerst worden gedecodeerd voordat je de Base64 kunt lezen. De gids over procent-codering legt de regels voor links uit.

Een inlogtoken is het gangbare voorbeeld: een JSON Web Token bestaat uit drie Base64url-delen die met punten zijn verbonden: een header, de data en een handtekening. De JWT-decoder splitst er één en toont de header en data als leesbare JSON.

Data-URL's en afbeeldingen

Een data-URL zet het bestand in de link zelf. De vorm is data:, dan het mediatype, dan ;base64, dan een komma en de data. Een kleine afbeelding wordt data:image/png;base64, gevolgd door de gecodeerde bytes. Webpagina's en stylesheets accepteren deze vorm, wat een verzoek bespaart voor een klein icoontje.

De prijs is de grootte. De data is ongeveer een derde groter en reist mee in de pagina of stylesheet, in plaats van als apart bestand dat de browser kan cachen. Gebruik data-URL's voor kleine afbeeldingen, niet voor grote foto's. Comprimeer de foto voordat je hem codeert als hij groot is.

Als je Base64 in de tool decodeert, kijkt hij naar de eerste bytes van de data. PNG-, JPEG-, GIF- en WebP-bestanden beginnen elk met een bekende signatuur, dus de tool toont een voorbeeld en biedt een download aan. Een data-URL met een afbeeldingstype wordt ook als afbeelding getoond.

Zo doe je het met fixmint

  1. Kies Coderen of Decoderen boven Tekst of Base64, en plak daarna je tekst of Base64.
  2. Vink URL-veilig alfabet, geen =-opvulling aan voor tokens, bestandsnamen en links. De decoder accepteert beide vormen hoe dan ook.
  3. Wil je een data-URL van een bestand maken, sleep het bestand naar het sleepgebied en vink Voor bestanden: maak een data:-URL aan.
  4. Kopieer het resultaat. Zijn de gedecodeerde bytes een bestand en geen tekst, gebruik dan de download die de tool aanbiedt.

Veelvoorkomende decodeerfouten

  • Een teken is niet toegestaan. De invoer bevat een teken buiten de 64, zoals een aanhalingsteken uit een gekopieerde zin. Controleer waar de tekst vandaan komt. Een nulbreedtespatie in gekopieerde tekst geeft dezelfde fout, dus verwijder verborgen tekens en probeer opnieuw. De gids over verborgen tekens legt uit waar ze vandaan komen.
  • De lengte is verkeerd. Er ontbreekt een teken of er staat er een te veel, meestal omdat het kopiëren is afgebroken.
  • Regeleinden en spaties. E-mail (MIME) breekt Base64 om de 76 tekens. De decoder verwijdert spaties en regeleinden, dus je kunt omgebroken tekst zoals hij is plakken.
  • Ontbrekende opvulling. Sommige systemen laten de =-tekens weg. De decoder voegt ze weer toe.

Randgevallen

  • Het gedecodeerde resultaat lijkt onzin. Het kan een bestand zijn in plaats van tekst. Een zip-bestand, een PDF of een programma decodeert naar bytes die niet als tekst te lezen zijn. De tool biedt die aan als download.
  • Zeer grote invoer. Het hele bestand wordt in de browser vastgehouden terwijl het wordt gecodeerd of gedecodeerd. Een heel groot bestand kan dus traag zijn en op een telefoon mislukken.

Snelle antwoorden

Is Base64 hetzelfde als versleuteling?

Nee. Het is een omkeerbare codering zonder sleutel, dus iedereen kan het decoderen.

Waarom is mijn Base64 langer dan het bestand?

Elke groep van drie bytes wordt vier tekens, dus de tekst is ongeveer een derde groter.

Waarom lukt het decoderen van een gekopieerde Base64-string niet?

Meestal is er bij het kopiëren een teken verloren gegaan of erbij gekomen, zoals een regeleinde op de verkeerde plek of een ontbrekend laatste teken. Kopieer het opnieuw vanaf de bron.

Vertaald uit de Engels origineel met hulp van AI.

Reacties

    Nog geen reacties. Wees de eerste.

    Je waardering (optioneel)

    Je e-mail wordt nooit getoond of bewaard.

    Omslag van How to Remain Valuable When Intelligence Becomes CheapHow to Remain Valuable When Intelligence Becomes Cheap

    224 pagina's over de menselijke, economische en strategische voordelen die schaars blijven wanneer AI het grootste deel van het cognitieve werk kan doen.

    $3.84Koop op GumroadIn het Engels