Base64 Coderen / Decoderen

Codeer tekst naar Base64 of decodeer Base64 terug naar tekst — UTF-8-veilig, volledig in uw browser.

1.271 weergaven

Hoe het werkt

Base64 zet binaire gegevens om in platte tekst met behulp van een alfabet van 64 afdrukbare tekens: A–Z, a–z, 0–9, plus + en / (64 symbolen is precies 2⁶, vandaar de naam Base64). De encoder leest de invoer 3 bytes (24 bits) tegelijk, splitst die 24 bits in vier stukken van 6 bits en koppelt elk stuk van 6 bits aan één teken uit het alfabet — zo worden 3 bytes binaire gegevens altijd precies 4 tekens tekst. Als de invoerlengte geen exact veelvoud van 3 is, wordt de laatste groep aangevuld met één of twee =-tekens om de uitvoerlengte een veelvoud van 4 te houden.

Concreet: de drie bytes die "Man" vormen (77, 97, 110 — 01001101 01100001 01101110 in binaire vorm) worden hergroepeerd in vier stukken van 6 bits (010011, 010110, 000101, 101110), elk gekoppeld aan een teken, wat TWFu oplevert. Omdat elke 3 invoerbytes altijd uitbreiden tot 4 uitvoertekens, is Base64-gecodeerde data betrouwbaar ongeveer 33% groter dan het origineel — een afbeelding van 300 KB wordt ongeveer een Base64-string van 400 KB, wat van belang is bij het insluiten van afbeeldingen als data:-URI's of het bijvoegen van binaire bestanden in JSON of e-mail.

Deze tool verwerkt Unicode correct door de tekst eerst naar UTF-8 te coderen, zodat multibyte-tekens en emoji ("çğü 😀") ongeschonden heen en terug gaan — een naïeve JavaScript-aanroep van btoa() geeft hierbij een fout, omdat die één byte per teken verwacht. Alles gebeurt lokaal in uw browser; niets van wat u typt wordt ergens naartoe gestuurd.

Base64 duikt voortdurend op in plekken die de meeste mensen nooit opmerken: een HTML-tag <img src="data:image/png;base64,..."> sluit een hele afbeelding rechtstreeks in plaats van naar een bestand te verwijzen; de HTTP-header Authorization: Basic draagt een Base64-gecodeerde "gebruikersnaam:wachtwoord"-string (alleen opmaak, geen beveiliging — TLS is wat de vertrouwelijkheid tijdens transport daadwerkelijk waarborgt); e-mailbijlagen worden al sinds de oorspronkelijke MIME-standaard in Base64 gecodeerd, omdat SMTP is ontworpen om 7-bits tekst te verplaatsen, geen ruwe binaire data; en JSON Web Tokens (JWT's) gebruiken de URL-veilige variant om een ondertekende binaire structuur te verpakken in drie door punten gescheiden tekstsegmenten.

Wat u moet weten

  • Base64 is geen versleuteling — het is een omkeerbare, publiek bekende weergave zonder enige geheimhouding. Iedereen kan het met hetzelfde alfabet direct decoderen; het bestaat puur om binaire data veilig te maken voor kanalen die alleen tekst verwerken (e-mail MIME-bijlagen, data-URI's, JSON-velden, HTTP Basic-Auth-headers), nooit om inhoud te verbergen.
  • URL-veilige variant: omdat + en / een speciale betekenis hebben in URL's, vervangt een "URL-veilig" Base64-alfabet deze door - en _ en laat vaak de =-opvulling weg. Deze tool decodeert beide varianten automatisch.
  • De omvangskosten zijn vast en voorspelbaar: de ~33% toename (4/3-verhouding) is exact voor de payload zelf — daarom zijn API's die ruwe binaire uploads accepteren doorgaans efficiënter met bandbreedte dan API's die Base64-verpakte JSON-body's vereisen.
  • Opvulling vertelt u de rest: één = betekent dat de oorspronkelijke datalengte 2 bytes boven een veelvoud van 3 lag; twee = betekent 1 byte erboven. Geen opvulling betekent dat de invoer precies een veelvoud van 3 bytes was.

Veelgestelde vragen

Waarom ziet mijn gedecodeerde uitvoer er verminkt uit?

Meestal was de invoer geen geldige Base64 (afgekapt, of met URL-veilige tekens -_ in plaats van +/), of waren de oorspronkelijke bytes helemaal geen tekst. Deze tool decodeert URL-veilige varianten automatisch.

Kan ik bestanden coderen?

Deze tool is voor tekst. Voor bestanden is het patroon een data:-URI, die de Base64-string omwikkelt met een MIME-type-voorvoegsel zodat een browser of e-mailclient weet hoe deze weer te geven — de meeste talen bieden eenregelige oplossingen (PHP base64_encode(file_get_contents(...)), JS FileReader.readAsDataURL). Zeer grote bestanden worden, gezien de ~33% overhead in grootte, meestal beter als ruwe binaire data verzonden dan Base64-verpakt.

Is Base64 veilig voor wachtwoorden?

Nee — het is door zijn ontwerp triviaal omkeerbaar, zonder sleutel of geheim erbij betrokken. HTTP Basic-authenticatie gebruikt het alleen voor transportopmaak (het verpakken van "gebruiker:wachtwoord" in een header-veilige string) en vertrouwt volledig op TLS/HTTPS voor werkelijke geheimhouding tijdens transport. Sla wachtwoorden gehasht op met een langzaam, gezouten algoritme (bcrypt, argon2, scrypt) — nooit gecodeerd, en al helemaal niet met Base64, dat iedereen in één regel code kan terugdraaien.

Waarom is Base64-gecodeerde uitvoer altijd ongeveer 33% groter dan de invoer?

Omdat de codering elke 3 bytes (24 bits) invoer koppelt aan 4 tekens uitvoer, en elk uitvoerteken slechts 6 bits informatie draagt in plaats van de 8 bits van een byte — dat is een vaste uitbreidingsverhouding van 4/3, die niet varieert met de inhoud. Een bestand van 3 MB wordt elke keer ongeveer een Base64-string van 4 MB.

Wat is het verschil tussen standaard Base64 en de "URL-veilige" variant?

Standaard Base64 gebruikt + en / in zijn alfabet, die beide een gereserveerde betekenis hebben binnen URL's en bestandspaden, dus een URL-veilige variant vervangt ze door - en _ (en laat vaak de =-opvulling weg) zodat de gecodeerde string direct in een URL of bestandsnaam kan staan zonder escaping. Deze tool herkent en decodeert beide varianten automatisch.

Reacties

Nog geen reacties — schrijf de eerste!

Vergelijkbare tools