Base64 is een weergave van bytes met behulp van een beperkt tekstalfabet. Dit is handig wanneer een transport tekst accepteert, maar de payload binair is. De operatie is omkeerbaar: een correcte decoder herstelt de originele bytes, inclusief nullen en waarden die geen geldige karakters zijn. Kiezen hoe deze bytes moeten worden geïnterpreteerd is een afzonderlijke stap.
Drie bytes worden vier tekens
Een byte bevat acht bits. Drie bytes leveren 24 bits, die gelijkmatig verdeeld zijn in vier groepen van zes. Elke groep selecteert een van de 64 alfabettekens. Het standaardalfabet bevat hoofdletters, kleine letters, cijfers, plus en schuine streep. Voor de tekst ASCII Man, de bytes zijn 4d 61 6e in hexadecimaal, en de gecodeerde uitvoer is TWFu.
Input bytes: 01001101 01100001 01101110
Six-bit sets: 010011 010110 000101 101110
Indexes: 19 22 5 46
Output: T W F u
Padding beschrijft de laatste groep
Als er één byte overblijft, heeft de uitvoer twee alfabettekens en twee gelijktekens. Twee resterende bytes produceren drie alfabettekens en één is gelijkteken. Zo M wordt TQ==, terwijl Ma wordt TWE=. De opvulling is onderdeel van de structuur: willekeurig gelijktekens toevoegen herstelt geen ontbrekend gegevensteken. Voor canonieke codering moeten ook de ongebruikte bits van het laatste alfabetteken nul zijn.
Voor n invoerbytes bevat de uitvoer met opvulling 4 × ceil(n / 3) tekens. Een bestand van 1.024 bytes levert dus 1.368 tekens op voordat een Data URI-voorvoegsel of regelafbrekingen worden toegevoegd. Base64 comprimeert niet, maar een aparte compressielaag voor het transport kan de uiteindelijke overdrachtsgrootte verkleinen.
Valideer alvorens te interpreteren
Gebruik de strikte modus bij het testen van een producent op basis van een gedefinieerd protocol. Gebruik de compatibiliteitsmodus wanneer een bekende bron regeleinden ASCII heeft ingevoegd, opvulling heeft weggelaten of een Data URI-wrapper heeft toegevoegd. Bekijk de geregistreerde aanpassingen. Onverwachte interpunctie, gemengde alfabetten en niet-nul ongebruikte bits verdienen onderzoek, niet stille verwijdering.
Inspecteer ten slotte de gedecodeerde bytes. Geldige Base64 kan een ongeldige UTF-8-reeks, een afgeknotte afbeelding of een onvolledige PDF bevatten. Een succesvolle decodering bewijst alleen de coderingslaag. Sla binaire resultaten op als bytes en gebruik de juiste bestandsparser om hun structuur te controleren. Het alfabet, de opvulling en de canonieke bitregels worden gespecificeerd in RFC 4648.