Kódování Base64 je proces převodu binárních dat do formátu řetězce ASCII převedením těchto binárních dat na 6bitovou reprezentaci znaků. Metoda kódování Base64 se používá, když se binární data, jako jsou obrázky nebo video, přenášejí přes systémy, které jsou určeny k přenosu dat ve formátu prostého textu (ASCII).
Proč se používá kódování Base64?
Potřeba kódování Base64 pochází z problémů, ke kterým dochází při přenosu médií v surovém binárním formátu do textových systémů. Protože textové systémy (například e-mail) interpretují binární data jako širokou škálu znaků, včetně speciálních příkazových znaků, je velká část binárních dat přenášených na přenosová média těmito systémy nesprávně interpretována a v procesu přenosu je ztracena nebo poškozena.
Logika kódování Base64
Kódování Base64 rozděluje binární data na 6bitové segmenty o 3 plných bajtech a představuje je jako tisknutelné znaky ve standardu ASCII. Dělá to v zásadě ve dvou krocích. Prvním krokem je rozdělení binárního řetězce na 6bitové bloky. Base64 používá pouze 6 bitů (odpovídá 2 ^ 6 = 64 znaků), aby zajistil, že kódovaná data jsou tisknutelná a lidsky čitelná. Nepoužívají se žádné speciální znaky dostupné v ASCII. 64 znaků (odtud název Base64) má 10 číslic, 26 malých znaků, 26 velkých znaků, znaménko plus (+) a lomítko (/). K dispozici je také 65. znak známý jako podložka, což je znaménko rovná se (=). Tento znak se používá, když poslední segment binárních dat neobsahuje celých 6 bitů.
Příklad kódování Base64
Vezměme si například tři čísla ASCII 155, 162 a 233. Tato tři čísla tvoří binární proud 100110111010001011101001. Binární soubor, jako obrázek, obsahuje binární proud běžící na desítky nebo stovky tisíc nul a jedniček. Kodér Base64 začíná rozdělením binárního proudu do seskupení po šesti znacích: 100110 111010 001011 101001. Každé z těchto seskupení se převádí na čísla 38, 58, 11 a 41. Šestimístný binární proud převádí mezi binárním (nebo 2) na desetinná místa (základna-10) znaků čtvercováním každé hodnoty představované 1 v binární sekvenci s jejím pozičním čtvercem. Počínaje zprava a pohybující se doleva a počínaje nulou představují hodnoty v binárním proudu 2 ^ 0, poté 2 ^ 1, poté 2 ^ 2, poté 2 ^ 3, poté 2 ^ 4, poté 2 ^ 5. Tady je další způsob, jak se na to podívat. Počínaje zleva má každá pozice hodnotu 1, 2, 4, 8, 16 a 32. Pokud má binární číslo v slotu 1, přidáte tuto hodnotu; pokud má v slotu 0, nemáte. Binární řetězec 100110 se převede na desetinné číslo 38: 0 * 2 ^ 01 + 1 * 2 ^ 1 + 1 * 2 ^ 2 + 0 * 2 ^ 3 + 0 * 2 ^ 4 + 1 * 2 ^ 5 = 0 + 2 + 4 + 0 + 0 + 32. Kódování Base64 převezme tento binární řetězec a rozdělí ho na 6bitové hodnoty 38, 58, 11 a 41. Nakonec jsou tato čísla převedena na znaky ASCII pomocí kódovací tabulky Base64. 6bitové hodnoty z tohoto příkladu se překládají do sekvence ASCII m6Lp. Použití převodní tabulky Base64:
- 38 je m
- 58 je 6
- 11 je L
- 41 je str
Tento dvoustupňový proces se použije na celý binární řetězec, který je zakódován. Aby se zajistilo, že kódovaná data lze správně vytisknout a nepřekročí limit délky řádku žádného poštovního serveru, jsou vloženy znaky nového řádku, aby délka řádku nepřesáhla 76 znaků. Znaky nového řádku jsou kódovány jako všechna ostatní data. Celým účelem kódování Base64, od přidání výplně k zachování 3bajtových binárních segmentů po převod binárního textu na text pomocí tabulky Base64, je zachování integrity přenášených binárních informací.
Tabulka kódování Base64
Následující tabulka překládá všech 64 znaků použitých v kódování Base64.
Tabulka kódování Base64 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
Hodnota | Char | Hodnota | Char | Hodnota | Char | Hodnota | Char | |||
0 | A | 16 | Q | 32 | G | 48 | w | |||
1 | B | 17 | R | 33 | h | 49 | X | |||
2 | C | 18 | S | 34 | i | 50 | y | |||
3 | D | 19 | T | 35 | j | 51 | z | |||
4 | E | 20 | U | 36 | k | 52 | 0 | |||
5 | F | 21 | PROTI | 37 | l | 53 | 1 | |||
6 | G | 22 | Ž | 38 | m | 54 | 2 | |||
7 | H | 23 | X | 39 | n | 55 | 3 | |||
8 | Já | 24 | Y | 40 | Ó | 56 | 4 | |||
9 | J | 25 | Z | 41 | p | 57 | 5 | |||
10 | K. | 26 | A | 42 | q | 58 | 6 | |||
11 | L | 27 | b | 43 | r | 59 | 7 | |||
12 | M | 28 | C | 44 | s | 60 | 8 | |||
13 | N | 29 | d | 45 | t | 61 | 9 | |||
14 | Ó | 30 | E | 46 | u | 62 | + | |||
15 | P | 31 | F | 47 | proti | 63 | / |
Řešení Endgame
Na konci procesu kódování může dojít k problému. Pokud je velikost původních dat v bajtech násobkem tří, vše funguje dobře. Pokud tomu tak není, mohou být prázdné bajty. Pro správné kódování jsou potřeba přesně 3 bajty binárních dat. Řešením je přidat dostatek bajtů s hodnotou 0 k vytvoření 3bajtové skupiny. Dvě takové hodnoty jsou připojeny, pokud data potřebují jeden další bajt dat, jedna je připojena pro dva další bajty. Tyto umělé koncové nuly samozřejmě nelze kódovat pomocí níže uvedené kódovací tabulky. Musí být zastoupeny 65. znakem. Vycpávkový znak Base64 je znaménko rovnosti (=) a je umístěn na konec kódovaných dat. Více od Lifewire
-
Jak se liší bitů, bytů, megabajtů, megabitů a gigabitů?
-
Co je to binární a jak to funguje?
-
Jak změnit velikost hlavního panelu v systému Windows 11
-
Využití oktetů v počítačích a sítích
-
Práce s binárními čísly
-
Co je hexadecimální?
-
Výukový program pro IP: Maska podsítě a podsítě
-
Průvodce pro začátečníky v režimu asynchronního přenosu (ATM)
-
Jak používat logické hodnoty (logické hodnoty) v aplikaci Excel
-
Co je soubor DXF?
-
Co je soubor HQX?
-
MAC adresy s příklady formátování
-
Jak odečíst v Tabulkách Google
-
Co je hodnota registru?
-
Jak číst binární soubory
-
Jak zobrazit tisknutelné znaky souboru pomocí příkazu Strings
Vaše práva na soukromí
Lifewire a naši partneři třetích stran používají soubory cookie a zpracovávají osobní údaje, jako jsou jedinečné identifikátory, na základě vašeho souhlasu s ukládáním a / nebo přístupem k informacím v zařízení, zobrazováním personalizovaných reklam a pro měření obsahu, přehled publika a vývoj produktů. Chcete-li změnit nebo odvolat váš výběr souhlasu pro Lifewire.com, včetně vašeho práva vznést námitku, kde je použit oprávněný zájem, klikněte níže. Nastavení můžete kdykoli aktualizovat pomocí odkazu „Ochrana osobních údajů v EU“ v dolní části jakékoli stránky. Tyto volby budou globálně signalizovány našim partnerům a nebudou mít vliv na data procházení. Seznam partnerů (prodejců)
My a naši partneři zpracováváme údaje pro:
Aktivně pro identifikaci skenujte vlastnosti zařízení. Používejte přesná geolokační data. Ukládejte a / nebo přistupujte k informacím na zařízení. Vyberte přizpůsobený obsah. Vytvořte si osobní profil obsahu. Měření výkonu reklamy. Vyberte základní reklamy. Vytvořte si přizpůsobený profil reklam. Vyberte přizpůsobené reklamy. Aplikujte průzkum trhu a získejte přehled o publiku. Měření výkonu obsahu. Vyvíjejte a vylepšujte produkty. Seznam partnerů (prodejců)