Téma Base64 je tématem, které upoutalo pozornost lidí všech věkových kategorií a sektorů společnosti. Je to téma, o kterém se léta diskutuje a diskutuje a je aktuální i dnes. Base64 je něco, co nás všechny nějakým způsobem ovlivňuje, ať už na osobní, profesní nebo společenské úrovni. V tomto článku prozkoumáme různé aspekty související s Base64 a jak ovlivňuje naše životy. Od svého vzniku a historie až po jeho zapojení do dnešní společnosti, Base64 je téma, které si zaslouží hloubkovou analýzu, abychom lépe porozuměli jeho důležitosti a dopadu na náš každodenní život.
Base64 je kódování, které převádí binární data na posloupnosti tisknutelných znaků. Umožňuje přenos binárních dat kanály, které dovolují pouze přenos textů. Používá se například v rozšíření MIME pro přenos e-mailů původně 7bitovým poštovním systémem v Internetu. Je definováno v RFC 4648.
Base64 kóduje vždy tři oktety binárních dat pomocí čtyř ASCII znaků. Ke kódování používá 64prvkovou sadu znaků tvořenou velkými i malými písmeny anglické abecedy, číslicemi a znaky plus ('+') a lomítko ('/'). Pokud počet oktetů původních dat není dělitelný třemi, doplňuje na konec zakódovaného textu jedno nebo dvě rovnítka ('=').
Například následující text:
je (při reprezentaci v UTF-8) v MIME Base64 zakódován takto:
TmF6ZGFyLCBzdsSbdGUhIFDFmcOtbGnFoSDFvmx1xaVvdcSNa8O9IGvFr8WIIMO6cMSbbCDEj8Oh YmVsc2vDqSDDs2R5Lg==
Base64 se však používá v převážné míře k zakódování binárních dat, například multimédií.
Z výše uvedeného příkladu je řetězec Naz
zakódován do řetězce TmF6
.
N
, a
, z
jsou zapsány v ASCII jako čísla 78
, 97
, 122
dekadicky, tedy ve dvojkové soustavě 01001110
, 01100001
, 01111010
. Tyto 3 bajty jsou spojeny do 24 bitů 010011100110000101111010
. Následně jsou rozděleny do skupin po 6 bitech (6 bitů reprezentuje 64 možných stavů) a převedeny do 4 čísel (24 = 6×4). Tato čísla jsou použita jako index do tabulky znaků:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
kde znaku "A" odpovídá index 0 a znaku "/" index 63.
znaky textu | N | a | z | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ASCII hodnota | 78 | 97 | 122 | |||||||||||||||||||||
bity | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 0 |
index | 19 | 38 | 5 | 58 | ||||||||||||||||||||
base64 kódování | T | m | F | 6 |
Jak je uvedeno v daném příkladu s textovými daty, kódování base64 převede každé 3 původní bajty (v našem případě 3 znaky ASCII) na 4 kódované znaky ASCII. Pokud počet nevychází přesně na trojice, zakóduje se poslední jeden nebo dva znaky a přidají se dvě, respektive jedno rovnítko.