Base64
Z Wikipedie, otevřené encyklopedie
Base64 je datový formát zobrazující binární data pomocí tisknutelných znaků ASCII.
Obsah |
[editovat] Příklad
Odstavec z knihy Leviathan (Thomas Hobbes):
- Man is distinguished, not only by his reason, but by this singular passion from other animals, which is a lust of the mind, that by a perseverance of delight in the continued and indefatigable generation of knowledge, exceeds the short vehemence of any carnal pleasure.
je v MIME Base64 zakódován takto:
TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlz IHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2Yg dGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGlu dWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRo ZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=
[editovat] Algoritmus base64
Z výše uvedeného příkladu je řetězec Man zakódován do řetězce TWFu.
M, a, n jsou zapsány v ASCII jako čísla 77, 97, 110 dekadicky, tedy ve dvojkové soustavě 01001101, 01100001, 01101110. Tyto 3 byte jsou spojeny do 24 bitů 010011010110000101101110. 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.
| Text content | M | a | n | |||||||||||||||||||||
| ASCII | 77 | 97 | 110 | |||||||||||||||||||||
| Bit pattern | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 0 |
| Index | 19 | 22 | 5 | 46 | ||||||||||||||||||||
| Base64-Encoded | T | W | F | u | ||||||||||||||||||||
Jak je uvedeno v daném příkladu, 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 (dva) znak a přidají se dvě (jedno) rovnítka. Base64 se však používá v převážné míře k zakódování binárních dat, například multimédií.
[editovat] Vlastnosti base64
- 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 37 %.

