Base64

Z Wikipedie, otevřené encyklopedie
Skočit na navigaci Skočit na vyhledávání

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 ('=').

Příklad[editovat | editovat zdroj]

Například následující text:

Nazdar, světe! Příliš žluťoučký kůň úpěl ďábelské ódy.

je (při reprezentaci v UTF-8) v MIME Base64 zakódován takto:

TmF6ZGFyLCBzdsSbdGUhIFDFmcOtbGnFoSDFvmx1xaVvdcSNa8O9IGvFr8WIIMO6cMSbbCDEj8Oh
YmVsc2vDqSDDs2R5Lg==

Algoritmus base64[editovat | editovat zdroj]

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. Base64 se však používá v převážné míře k zakódování binárních dat, například multimédií.

Vlastnosti base64[editovat | editovat zdroj]

  • Výsledný řetězec se skládá z tisknutelných znaků ASCII.
  • Rozlišuje se velikost písmen.
  • Nemá kontrolní mechanismus.
  • Kódování probíhá binárně (neřeší se znakové kódování apod.).
  • Base64 je binárně bezpečné.
  • Délka výsledného řetězce se obyčejně navýší o 33 %.

Nástroje On-line[editovat | editovat zdroj]

Reference[editovat | editovat zdroj]