Base64 är ett sätt att representera binära data med vanliga texttecken. En bild, ett dokument eller ett stycke text kan alla representeras som bytes. När ett system behöver dessa bytes i ett textfält, tillhandahåller Base64 en reversibel stavning som mottagaren kan avkoda senare.
Ett litet exempel
Texten Hello innehåller fem ASCII byte. Att koda dessa bytes producerar SGVsbG8=. Avkodning av det värdet returnerar samma fem byte, som sedan kan läsas som originaltexten. Likhetstecknet tillhör kodningens slutliga grupp; det är inte en del av ordet Hej.
Text: Hello
Bytes in Hex: 48 65 6c 6c 6f
Base64: SGVsbG8=
Decoded bytes: 48 65 6c 6c 6f
Prova exemplet i kodaren, kopiera resultatet till avkodaren och jämför den returnerade texten. Prova sedan ett kinesiskt tecken eller emoji. Text måste först bli byte med en teckenkodning som UTF-8; Base64 själv definierar inte ett språk eller teckenuppsättning.
Där du stöter på det
Vanliga exempel inkluderar ett binärt fält i JSON, en inline-bild i en Data URI och de läsbara delarna av vissa tokens. Det omgivande formatet ger sammanhanget. En Base64-sträng i sig berättar inte det ursprungliga filnamnet, MIME-typ, teckenkodning eller om innehållet är pålitligt.
En Data URI lägger till ett prefix som t.ex data:image/png;base64,. Det prefixet beskriver nyttolasten men är inte en del av alfabetet Base64. Vissa avkodare förstår omslaget; andra förväntar sig endast delen efter kommatecken. Välj lämpligt verktyg eller läge istället för att radera okända tecken slumpmässigt.
Tre vanliga missförstånd
För det första är Base64 inte kryptering: ingen hemlighet behövs för att avkoda den. För det andra gör det inte filerna mindre; vanlig vadderade utdata är ungefär en tredjedel större än de ursprungliga byten. För det tredje är inte alla avkodade resultat text. En bild kan korrekt avkoda till bytes som ser ut som nonsens i en textruta.
När en avkodning misslyckas, kontrollera originalkällan, det valda alfabetet och om strängen var trunkerad. När det lyckas, välj en lämplig vy: text för giltiga textbytes, Hex för inspektion eller en filnedladdning för binär data. Det detaljerade Base64 alfabetet och exemplen definieras i RFC 4648.