Hvad er Base64-kodning? Et første eksempel med rigtige bytes

Forstå formålet med Base64, se Hej bliver SGVsbG8=, og genkend forskellen mellem kodning og kryptering.

Base64 er en måde at repræsentere binære data med almindelige teksttegn. Et billede, et dokument eller et stykke tekst kan alle repræsenteres som bytes. Når et system har brug for disse bytes inde i et tekstfelt, giver Base64 en reversibel stavemåde, som modtageren kan afkode senere.

Et lille eksempel

Teksten Hello indeholder fem ASCII bytes. Kodning af disse bytes producerer SGVsbG8=. Afkodning af denne værdi returnerer de samme fem bytes, som derefter kan læses som den originale tekst. Lighedstegnet tilhører kodningens sidste gruppe; det er ikke en del af ordet Hej.

Text:           Hello
Bytes in Hex:   48 65 6c 6c 6f
Base64:         SGVsbG8=
Decoded bytes:  48 65 6c 6c 6f

Prøv eksemplet i encoderen, kopier resultatet ind i dekoderen, og sammenlign den returnerede tekst. Prøv derefter et kinesisk tegn eller emoji. Tekst skal først blive bytes ved hjælp af en tegnkodning såsom UTF-8; Base64 definerer ikke i sig selv et sprog eller et tegnsæt.

Hvor du støder på det

Almindelige eksempler inkluderer et binært felt i JSON, et indlejret billede i en Data URI og de læsbare dele af visse tokens. Det omgivende format giver konteksten. En Base64 streng fortæller dig ikke i sig selv det originale filnavn, MIME type, tegnkodning eller om indholdet er troværdigt.

En Data URI tilføjer et præfiks som f.eks data:image/png;base64,. Det præfiks beskriver nyttelasten, men er ikke en del af alfabetet Base64. Nogle dekodere forstår indpakningen; andre forventer kun delen efter kommaet. Vælg det relevante værktøj eller den relevante tilstand i stedet for at slette ukendte tegn tilfældigt.

Tre almindelige misforståelser

For det første er Base64 ikke kryptering: ingen hemmelighed er nødvendig for at afkode den. For det andet gør det ikke filerne mindre; almindeligt polstret output er omtrent en tredjedel større end de originale bytes. For det tredje er ikke alle afkodede resultater tekst. Et billede kan korrekt afkode til bytes, der ligner nonsens i en tekstboks.

Når en afkodning mislykkes, skal du kontrollere den originale kilde, det valgte alfabet, og om strengen blev afkortet. Når det lykkes, skal du vælge en passende visning: tekst til gyldige tekstbytes, Hex til inspektion eller en fildownload til binære data. Det detaljerede Base64 alfabet og eksempler er defineret i RFC 4648.