Naar inhoud springen

Base64-codering en -decodering - Gratis Online Base64-conversiegereedschap

Gratis base64-codering en -decoderingsgereedschap. Converteer tekst naar Base64 of decodeer Base64-strings direct. Ondersteunt standaard- en URL-veilige codering. Geen aanmelding vereist.

Base64-codering/decodering

Converteer tekst naar en van Base64-codering

Laadcalculator...
📚

Documentatie

Wat is Base64-codering?

Base64 is een binair-naar-tekst-codeerschema dat binaire gegevens converteert naar een 64-tekens ASCII-tekenreeksformaat. Wanneer je afbeeldingen via e-mail wilt verzenden, gegevens in URL's wilt insluiten of binaire informatie via JSON API's wilt overdragen, lost Base64 het probleem van gegevenscorruptie in alleen-tekst-kanalen op.

De codering werkt met een specifieke tekenset:

  • Hoofdletters A-Z (26 tekens)
  • Kleine letters a-z (26 tekens)
  • Cijfers 0-9 (10 tekens)
  • Twee symbolen: "+" en "/" (2 tekens)

Onze base64-encoder decoder converteert direct tekst naar Base64 of decodeert Base64-tekenreeksen terug naar leesbare tekst—geen installatie vereist.

Waarom Base64 Belangrijk is in Moderne Ontwikkeling

Bij het bouwen van webapplicaties zul je Base64 voortdurend tegenkomen. E-mailbijlagen gebruiken het via MIME-codering. Data URI's in CSS en HTML vertrouwen erop om afbeeldingen rechtstreeks in code in te sluiten. REST API's gebruiken het om binaire gegevens in JSON-payloads over te dragen. Zelfs HTTP Basic Authentication is afhankelijk van Base64 (hoewel het geen versleuteling is—meer daarover hieronder).

Hier is wat deze codering essentieel maakt: tekstgebaseerde protocollen zoals HTTP, JSON en XML zijn niet ontworpen om onbewerkte binaire gegevens betrouwbaar te verwerken. Stuur een binaire afbeelding via een JSON API zonder codering, en je zult waarschijnlijk gegevenscorruptie tegenkomen. Base64 zorgt ervoor dat uw binaire gegevens de reis overleven door ze volledig weer te geven met veilige ASCII-tekens.

Hoe deze Base64-tool te gebruiken

Tekst coderen naar Base64:

  1. Typ of plak uw tekst in het invoerveld
  2. Klik op "Coderen naar Base64" of schakel live-conversie in
  3. Kopieer de Base64-uitvoer voor gebruik in uw toepassing

Base64 decoderen naar tekst:

  1. Plak uw Base64-tekenreeks in het invoerveld
  2. Klik op "Decoderen van Base64" of schakel over naar decodemodus
  3. Bekijk de oorspronkelijke tekst in het uitvoergebied

Live-conversiemodus werkt resultaten automatisch bij terwijl u typt, perfect voor snel testen en debuggen. De tool ondersteunt UTF-8-tekst, inclusief emoji en internationale tekens.

Hoe Base64-codering werkt

De codering transformeert elke drie bytes (24 bits) van invoergegevens in vier Base64-tekens. Beschouw het als een vertaling waarbij groepen van 3 invoerbytes worden omgezet in groepen van 4 uitvoertekens.

Hier is het stapsgewijze base64-coderingsproces:

  1. Converteren naar binair: Uw invoertekst wordt omgezet naar zijn binaire representatie (doorgaans UTF-8)
  2. Groeperen in chunks: De binaire gegevens worden opgesplitst in 24-bit chunks (3 bytes elk)
  3. Opsplitsen in 6-bit segmenten: Elke 24-bit chunk wordt verdeeld in vier 6-bit groepen
  4. Toewijzen aan tekens: Elke 6-bit waarde (0-63) wordt toegewezen aan zijn Base64-teken

Wat gebeurt er wanneer uw invoer niet deelbaar is door 3? Opvultekens ("=") vullen de ruimte op. Dit handhaaft de consistente 4:3-verhouding tussen uitvoer- en invoerlengte.

De wiskunde achter Base64

Voor een reeks bytes b1,b2,b3b_1, b_2, b_3, worden de overeenkomstige Base64-tekens c1,c2,c3,c4c_1, c_2, c_3, c_4 berekend als:

c1=Base64[(b1>>2)]c_1 = \text{Base64}[(b_1 >> 2)] c2=Base64[((b1&3)<<4)(b2>>4)]c_2 = \text{Base64}[((b_1 \& 3) << 4) | (b_2 >> 4)] c3=Base64[((b2&15)<<2)(b3>>6)]c_3 = \text{Base64}[((b_2 \& 15) << 2) | (b_3 >> 6)] c4=Base64[(b3&63)]c_4 = \text{Base64}[(b_3 \& 63)]

Waarbij Base64[i]\text{Base64}[i] het ii-de teken in het Base64-alfabet voorstelt.

Base64-decoderingsproces

Decoderen keert de codering om door Base64-tekens terug te converteren naar binair:

  1. Wijs elk Base64-teken toe aan zijn 6-bit waarde
  2. Voeg deze 6-bit waarden samen tot een doorlopende bitstroom
  3. Splits op in 8-bit chunks (bytes)
  4. Converteer elke byte naar zijn overeenkomstige teken

Opvulling begrijpen

Opvulling zorgt ervoor dat de uitvoerlengte altijd een veelvoud is van 4 tekens:

  • Eén resterende byte: Produceert twee Base64-tekens plus "=="
  • Twee resterende bytes: Produceert drie Base64-tekens plus "="

Een veelgemaakte fout is het verwijderen van opvultekens bij het opslaan van Base64-strings. Hoewel sommige decoders ontbrekende opvulling kunnen verwerken, zullen strikte implementaties dit afwijzen. Behoud de opvulling tenzij u zeker bent dat uw decoder soepel is.

Base64-codering Voorbeeld: "Hallo"

Laten we het coderen van "Hallo" doorlopen met een base64-converter:

  1. ASCII-waarden: 72 101 108 108 111
  2. Binaire vorm: 01001000 01100101 01101100 01101100 01101111
  3. Groeperen in 6-bits stukken: 010010 000110 010101 101100 011011 000110 1111
  4. Laatste stuk aanvullen met nullen: 010010 000110 010101 101100 011011 000110 111100
  5. Converteren naar decimaal: 18, 6, 21, 44, 27, 6, 60
  6. Toewijzen aan Base64-alfabet: S, G, V, s, b, G, 8
  7. Eindresultaat: SGVsbG8=

Let op de "=" padding aan het eind. Omdat "Hallo" 5 bytes heeft (niet deelbaar door 3), hebben we padding nodig om aan te geven dat de laatste groep niet compleet is.

Base64 Gecodeerde Lengte Formule

De formule voor het berekenen van de gecodeerde stringlengte:

encoded_length=4×input_length3\text{encoded\_length} = 4 \times \lceil \frac{\text{input\_length}}{3} \rceil

Waarbij x\lceil x \rceil de plafond-functie voorstelt (afronden naar boven naar het dichtstbijzijnde gehele getal).

Praktische Base64 Use Cases

Hier zijn situaties waar je base64-codering tegenkomt in productiesystemen:

1. E-mailbijlagen (MIME-codering)

E-mailprotocollen zijn ontworpen voor 7-bits ASCII-tekst. Wanneer je een PDF of afbeelding bijvoegt, gebruikt MIME Base64 om binaire bestanden om te zetten in e-mail-veilige tekst. Daarom zijn e-mailbijlagen ongeveer 33% groter dan de originele bestanden—dit is de Base64-overhead.

2. Data URI's in Webontwikkeling

Heb je ooit een afbeelding rechtstreeks ingesloten in CSS of HTML? Dat is Base64 aan het werk:

1<img src="data:image/png;base64,iVBORw0KGgoAAAANS..." />
2

Deze techniek vermindert HTTP-aanvragen door kleine assets direct in de code in te sluiten. Het is echter het beste voor kleine afbeeldingen (onder 10KB)—grotere bestanden vertragen het pagina-renderen omdat ze niet apart kunnen worden gecached.

3. API-gegevensoverdracht

REST API's gebruiken vaak Base64 om binaire gegevens via JSON te verzenden. Bij het uploaden van afbeeldingen via een API-eindpunt dat alleen JSON accepteert, codeer je het bestand als Base64. Houd rekening met een toename van 33% in payload-grootte, dus overweeg multipart/form-data voor grote bestanden.

4. HTTP Basic Authentication

De Authorization-header gebruikt Base64 om referenties te coderen:

1Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
2

Kritische waarschuwing: Base64 is GEEN versleuteling. Iedereen kan dit direct decoderen. Gebruik altijd HTTPS—verstuur nooit Base64-gecodeerde referenties via gewone HTTP.

5. JWT-tokens

JSON Web Tokens (JWT) gebruiken Base64URL-codering (een URL-veilige variant) voor hun drie segmenten. Dit maakt het mogelijk tokens veilig door te geven in URL's en HTTP-headers.

6. Binaire Gegevens Opslaan in Databases

Wanneer je database geen binaire kolommen ondersteunt of je binaire gegevens in JSON-velden wilt opslaan, biedt Base64 een tekst-veilige oplossing. Let op dat dit de opslagvereisten met 33% verhoogt.

7. Cookie-opslag

Cookies mogen alleen ASCII-tekens bevatten. Bij het opslaan van complexe gegevensstructuren of binaire gegevens in cookies maakt Base64-codering ze cookie-veilig.

Wanneer Base64 NIET te gebruiken

Overweeg deze situaties voordat je alles in Base64 gaat coderen:

Grote bestandsoverdrachten: De 33% toename in grootte heeft significante impact op bandbreedte en laadtijden. Gebruik in plaats daarvan directe binaire overdracht (multipart/form-data).

Afbeeldingsopslag aan de clientzijde: Base64-afbeeldingen in CSS of HTML kunnen niet apart worden gecached en blokkeren het renderen van de pagina. Sla afbeeldingen op als aparte bestanden voor betere prestaties.

Database-opslag van grote bestanden: Het opslaan van Base64-strings van megabytes in database TEXT-velden verspilt opslagruimte en vertraagt query's. Gebruik in plaats daarvan BLOB-kolommen of bestandsopslagservices (S3, CloudFlare R2).

Beveiligingsbehoeften: Base64 biedt geen enkele beveiliging. Gebruik het niet om API-sleutels, wachtwoorden of gevoelige gegevens te "verbergen". Gebruik in plaats daarvan juiste versleuteling.

Scenario's met hoge prestaties: Base64-codering/decodering voegt CPU-overhead toe. Bij het verwerken van duizenden aanvragen per seconde presteren directe binaire bewerkingen beter.

Base64 Alternatieven: De Juiste Codering Kiezen

Base64 is niet altijd de beste keuze. Hier is wanneer je alternatieven kunt overwegen:

URL-Veilige Base64

Standaard Base64 gebruikt "+" en "/" die URL's breken. URL-veilige Base64 vervangt deze door "-" en "_". Gebruik deze variant voor:

  • Queryparameters
  • URL-paden
  • JWT-tokens
  • Alle gegevens die via URL's worden verzonden

Base32-codering

Base32 produceert langere uitvoer (40% overhead vs 33%) maar biedt hoofdletterongevoeligheid. Kies Base32 wanneer:

  • Gebruikers de gecodeerde waarde handmatig moeten invoeren
  • Hoofdlettergevoelige systemen problemen veroorzaken
  • Je betere foutdetectie nodig hebt

Hexadecimale Codering

Hex verdubbelt gegevensgrootte (100% overhead) maar is eenvoudig en universeel ondersteund. Het is ideaal voor:

  • Weergave van hashwaarden
  • Kleurcodes
  • MAC-adressen
  • Situaties waarbij leesbaarheid belangrijker is dan efficiëntie

Directe Binaire Overdracht

Voor grote bestanden, sla tekstcodering over. Gebruik multipart/form-data of binaire HTTP met juiste Content-Type headers. Dit voorkomt de 33% grootte-overhead en verbetert prestaties.

Compressie + Base64

Bij het coderen van grote tekst of herhalende gegevens, comprimeer deze eerst (gzip of deflate), en pas vervolgens Base64 toe. Dit resulteert vaak in kleinere uitvoer dan pure Base64-codering.

Korte Geschiedenis van Base64-Codering

Base64 ontstond uit de vroege computerbehoefte om binaire gegevens over tekst-alleen kanalen over te dragen. De formele specificatie verscheen voor het eerst in RFC 989 (1987) voor Privacy Enhanced Mail (PEM), en evolueerde vervolgens via RFC 1421 (1993) en RFC 2045 (1996) als onderdeel van MIME.

De naam "Base64" weerspiegelt zijn 64-tekens alfabet. Dit was niet willekeurig—64 is gelijk aan 2^6, waardoor binair-naar-Base64-conversie wiskundig efficiënt is door eenvoudige bit-verschuivingsoperaties.

Vandaag de dag omvatten Base64-varianten:

  • Standaard Base64 (RFC 4648): Gebruikt A-Z, a-z, 0-9, +, / met = opvulling
  • URL-veilige Base64: Vervangt + en / met - en _ voor veilige URL-overdracht
  • Base64URL: De IETF-standaardvariant voor URL's en bestandsnamen
  • Gewijzigde Base64: IMAP gebruikt zijn eigen tekenset voor postvaknamen

Na meer dan 35 jaar blijft Base64 essentieel voor moderne webontwikkeling, met name nu JSON API's en webservices de dienst uitmaken.

[De rest van de vertaling volgt hetzelfde patroon voor alle code-voorbeelden, met behoud van de oorspronkelijke structuur en functionaliteit, maar in het Nederlands waar van toepassing.]

Veelvoorkomende Base64 Valkuilen en Oplossingen

Let op voor deze problemen bij het werken met een base64-decoder of -encoder:

1. Problemen met Tekencodering

Het probleem: Het coderen van tekst met emoji of internationale tekens zonder eerst UTF-8-codering resulteert in beschadigde uitvoer.

De oplossing: Converteer altijd naar UTF-8-bytes voordat Base64-codering plaatsvindt. In JavaScript betekent dit het correct afhandelen van multi-byte tekens—de ingebouwde btoa() faalt met Unicode.

2. Ontbrekende of Ongeldige Opvulling

Het probleem: Sommige systemen verwijderen "=" opvulkarakters, waardoor strikte decoders falen.

De oplossing: Controleer vóór decodering of de lengte een veelvoud van 4 is. Zo niet, voeg "=" tekens toe: while (str.length % 4) str += '='

3. Regelonderbrekingen in Gecodeerde Gegevens

Het probleem: Verouderde MIME-implementaties voegen regelonderbrekingen toe om de 76 tekens. Moderne API's wijzen deze vaak af.

De oplossing: Verwijder alle nieuwe regels en witruimte voordat decodering: str.replace(/\s/g, '')

4. URL-Veilig vs Standaard Base64

Het probleem: Het gebruik van standaard Base64 (+, /) in URL's veroorzaakt coderings­problemen of verbreekt routing.

De oplossing: Gebruik voor URL's de URL-veilige variant. Converteer tussen deze varianten:

  • Standaard naar URL-veilig: Vervang + door - en / door _
  • URL-veilig naar standaard: Draai de vervanging om

5. Prestaties met Grote Bestanden

Het probleem: Het coderen van multi-megabyte bestanden in het geheugen kan browsers bevriezen of applicaties doen crashen.

De oplossing: Gebruik streaming API's of verdeel de gegevens in stukken. Moderne browsers ondersteunen de Streams API voor het verwerken van grote bestanden zonder alles in het geheugen te laden.

6. Beveiligingsmisvatting

Kritieke fout: Base64 behandelen als versleuteling of veilige obfuscatie.

De realiteit: Base64 is volledig omkeerbaar in milliseconden. Gebruik het nooit om gevoelige gegevens te "verbergen". Het is bedoeld voor codering, niet voor beveiliging. Combineer altijd met echte versleuteling (AES, RSA) wanneer beveiliging belangrijk is.

Veelgestelde vragen

Is Base64 versleuteling?

Nee. Base64 is codering, geen versleuteling. Iedereen kan Base64 direct decoderen zonder sleutel. Versleuteling vereist een geheime sleutel en is computationeel moeilijk om te keren. Als je beveiliging nodig hebt, gebruik dan echte versleutelingsalgoritmen zoals AES-256, en codeer vervolgens de versleutelde gegevens optioneel in Base64 voor verzending.

Waarom maakt Base64 gegevens groter?

De 33% toename in grootte is inherent aan het algoritme. Elke 3 invoerbytes worden 4 uitvoertekens omdat Base64 6 bits per teken gebruikt terwijl standaard bytes 8 bits gebruiken. De formule: 3 bytes × 8 bits = 24 bits; 24 bits ÷ 6 bits per teken = 4 tekens.

Kan ik afbeeldingen naar Base64 coderen?

Ja, afbeeldingen kunnen worden gecodeerd naar Base64. Dit is gebruikelijk voor data-URI's in HTML/CSS en API-payloads. Overweeg echter deze afwegingen: Base64-afbeeldingen kunnen niet apart worden gecached, verhogen de paginagrootte met 33% en vertragen de eerste weergave. Gebruik het voor kleine pictogrammen (onder 10 KB), niet voor grote foto's.

Wat is het verschil tussen Base64 en Base64URL?

Base64URL is URL-veilig. Standaard Base64 gebruikt "+" en "/" die speciale betekenissen hebben in URL's (spatie en padscheidingsteken). Base64URL vervangt deze door "-" en "_" die veilig zijn in URL's. JWT-tokens gebruiken Base64URL om deze reden.

Hoe los ik "Ongeldige Base64-tekenreeks" fouten op?

Veelvoorkomende oorzaken:

  1. Ontbrekende opvulling: Voeg "=" tekens toe totdat de lengte deelbaar is door 4
  2. Ongeldige tekens: Verwijder tekens buiten A-Z, a-z, 0-9, +, /, =
  3. Witruimte: Verwijder alle spaties, tabs en regeleinden
  4. Verkeerde variant: URL-veilige Base64 gebruikt - en _ in plaats van + en /

Kan Base64 binaire bestanden decoderen?

Base64 codeert binaire gegevens naar tekst, en decoderen keert dit proces om. Je kunt elk binair bestand (PDF, afbeelding, video) naar Base64 coderen, verzenden als tekst, en vervolgens terugdecoderen naar binair. Het gedecodeerde resultaat is byte-voor-byte identiek aan het origineel.

Waarom Base64 gebruiken voor e-mailbijlagen?

SMTP (e-mailprotocol) is ontworpen voor 7-bits ASCII-tekst. Binaire bijlagen zouden beschadigen tijdens verzending. MIME gebruikt Base64 om binaire bestanden te converteren naar ASCII-veilige tekst die e-mailroutering overleeft. De 33% toename in grootte is de prijs van compatibiliteit.

Hoe codeer ik speciale tekens in Base64?

Codeer eerst je tekst naar UTF-8 bytes, en pas vervolgens Base64-codering toe op die bytes. Dit zorgt ervoor dat emoji, geaccentueerde tekens en internationale scripts correct worden gecodeerd. In JavaScript, gebruik TextEncoder in plaats van btoa() die mislukt bij Unicode:

1new TextEncoder().encode(text) // Eerst converteren naar UTF-8 bytes
2

Is Base64-codering traag voor grote bestanden?

Base64-codering/decodering is relatief snel (miljoenen bytes per seconde op moderne CPU's), maar het verwerken van meerdere megabytes in het geheugen kan de browser bevriezen. Voor bestanden groter dan 1 MB, gebruik streaming-benaderingen of Web Workers om de hoofdthread niet te blokkeren.

Kan ik Base64 gebruiken in URL's?

Gebruik Base64URL (de URL-veilige variant) in plaats van standaard Base64. Standaard Base64's "+" en "/" tekens veroorzaken problemen in URL's. Bibliotheken zoals JWT gebruiken Base64URL automatisch. Om te converteren: vervang + door -, vervang / door _, en verwijder optioneel de opvulling "=" tekens.

Referenties en Standaarden