Zo gebruik je het
- Typ of plak de tekst die je wilt coderen, zet Invoer als op Hex om ruwe bytes te coderen, of klik op Bestand openen om een bestand te coderen.
- Laat Tekencodering op UTF-8 staan, tenzij het ontvangende systeem een andere tekenset verwacht.
- Stel de opties in: houd voor de meeste toepassingen de Variant op Standaard, zet Opvulling uit als de ontvanger geen opvulling wil, en stel Regelafbreking zo nodig in op 76 (MIME) of 64 (PEM) tekens.
- Kopieer de Base64-uitvoer met Kopiëren of sla hem op als bestand met Downloaden.
Zo werkt Base64-codering
De encoder leest de invoer per drie bytes. Die 24 bits worden opgesplitst in vier groepen van 6 bits, en elke 6-bitswaarde (0 tot 63) kiest één teken: A-Z voor 0 tot 25, a-z voor 26 tot 51, 0-9 voor 52 tot 61, en daarna + en /. Er gaan drie bytes in en er komen vier tekens uit; daarom is Base64 ongeveer 33% groter dan de oorspronkelijke gegevens.
Tekst M a n
Bytes 77 97 110
Bits 01001101 01100001 01101110
6 bits 010011 010110 000101 101110
Index 19 22 5 46
Base64 T W F u
Opvulling en uitvoerlengte
Als de invoerlengte geen veelvoud van drie is, is de laatste groep onvolledig. Eén overgebleven byte wordt twee tekens gevolgd door ==; twee overgebleven bytes worden drie tekens en één =. Uitvoer met opvulling is daardoor altijd 4 × ceil(n / 3) tekens lang voor n invoerbytes.
Opvulling bevat geen gegevens. JSON Web Tokens, URL-parameters en veel API's laten die weg, dus zet Opvulling uit als de ontvangende kant uitvoer zonder opvulling verwacht. Kies voor links en bestandsnamen de URL-veilige variant of gebruik de pagina Base64URL; beide vervangen + en / door - en _.
Regelafbreking voor MIME en PEM
Standaard is de uitvoer één lange regel, en dat is precies wat JSON, data-URI's en HTTP-headers nodig hebben. Twee formaten verwachten wel regeleinden:
- MIME, 76 tekens. E-mailbijlagen die met
Content-Transfer-Encoding: base64worden verzonden, mogen geen regels hebben die langer zijn dan 76 tekens (RFC 2045). Deze optie sluit regels af met CRLF, zoals MIME vereist. - PEM, 64 tekens. Certificaten en sleutels tussen de regels
-----BEGINen-----ENDgebruiken regels van 64 tekens (RFC 7468). Deze optie gebruikt LF als regeleinde.
Tekensets en bestanden
Base64 codeert bytes, geen letters, dus tekst wordt eerst met een tekenset omgezet naar bytes. De letter é is in UTF-8 twee bytes, terwijl hij in ISO-8859-1 of Windows-1252 slechts één byte inneemt, dus dezelfde tekst levert verschillende Base64 op. UTF-8 is de juiste keuze voor het web, JSON en vrijwel elke moderne API; kies GBK, Shift_JIS, Windows-1251 of een andere tekenset alleen om aan te sluiten op een verouderd systeem.
Bestanden worden precies zo gecodeerd als ze zijn opgeslagen, zonder omzetting van de tekenset. Zie Afbeelding naar Base64 voor afbeeldingen met kant-en-klare HTML- en CSS-fragmenten; gebruik Bestand naar Base64 voor een data-URI met het herkende MIME-type.
Specificatie
| Alfabet | A-Z a-z 0-9 + / |
|---|---|
| Uitvoergrootte | 4 tekens per 3 bytes (ongeveer 133%) |
| Opvulling | = tot een veelvoud van 4 tekens |
| Standaard | RFC 4648, sectie 4 |
| Hoofdlettergevoelig | Ja |
Voorbeelden
| Invoer (UTF-8) | Uitvoer |
|---|---|
Hello, World! | SGVsbG8sIFdvcmxkIQ== |
Base64.is | QmFzZTY0Lmlz |
你好 | 5L2g5aW9 |
Veelgestelde vragen
Waarom verschilt mijn Base64-uitvoer van die van een andere encoder?
echo voegt er een toe; gebruik printf '%s' of echo -n), een andere tekenset, Windows-regeleinden in de tekst, of andere instellingen voor opvulling, alfabet of regelafbreking. Dezelfde bytes met dezelfde opties geven altijd dezelfde uitvoer.Hoe codeer ik Unicode-tekst naar Base64 in JavaScript?
btoa() accepteert alleen tekens tot en met U+00FF en geeft bij elk ander teken een fout. Zet de string eerst om naar UTF-8-bytes, bijvoorbeeld met btoa(String.fromCharCode(...new TextEncoder().encode(str))). Gebruik in Node.js Buffer.from(str, 'utf8').toString('base64').Hoe codeer ik naar Base64 op de opdrachtregel?
printf '%s' 'your text' | base64 uit. GNU base64 breekt de uitvoer standaard af na 76 tekens (voeg -w 0 toe voor één regel), en openssl base64 na 64 tekens (voeg -A toe).Is Base64-codering een vorm van versleuteling?
Hoeveel groter worden mijn gegevens door Base64?
Elke 3 bytes worden 4 tekens, naar boven afgerond op een volledige groep, dus de uitvoer is ongeveer 33% groter. MIME-regelafbreking voegt per 76 tekens nog twee bytes (CRLF) toe.