Base64 kódovanie a dekódovanie
Zakódujte text alebo súbor do Base64, prípadne dekódujte Base64 späť na čitateľný text. Unicode sa spracuje správne, URL-safe abecedu zapnete jedným kliknutím a dekódovanie prijme obe abecedy s doplnením aj bez neho.
0 znakov · 0 slov · 0 riadkov
0 znakov · 0 slov · 0 riadkov
Všetko prebieha priamo v tejto karte prehliadača. Váš text sa nikdy nenahráva ani neukladá.
Abeceda Base64
Index → znak podľa RFC 4648. Zvýraznené posledné dva sa vo variante bezpečnom pre URL líšia: 62 je + alebo -, 63 je / alebo _.
- 0A
- 1B
- 2C
- 3D
- 4E
- 5F
- 6G
- 7H
- 8I
- 9J
- 10K
- 11L
- 12M
- 13N
- 14O
- 15P
- 16Q
- 17R
- 18S
- 19T
- 20U
- 21V
- 22W
- 23X
- 24Y
- 25Z
- 26a
- 27b
- 28c
- 29d
- 30e
- 31f
- 32g
- 33h
- 34i
- 35j
- 36k
- 37l
- 38m
- 39n
- 40o
- 41p
- 42q
- 43r
- 44s
- 45t
- 46u
- 47v
- 48w
- 49x
- 50y
- 51z
- 520
- 531
- 542
- 553
- 564
- 575
- 586
- 597
- 608
- 619
- 62+ -
- 63/ _
Aký dlhý bude výstup
Každé 3 vstupné bajty sa zmenia na 4 znaky; posledná skupina 1 alebo 2 bajtov sa v štandardnom Base64 dopĺňa znakom = a vo variante bezpečnom pre URL zostáva bez výplne.
| Vstup | Bajty | Štandardný | Bezpečný pre URL | Dĺžka |
|---|---|---|---|---|
U | 1 | VQ== | VQ | 4 |
Ul | 2 | VWw= | VWw | 4 |
Ult | 3 | VWx0 | VWx0 | 4 |
UltK | 4 | VWx0Sw== | VWx0Sw | 8 |
UltKi | 5 | VWx0S2k= | VWx0S2k | 8 |
UltKit | 6 | VWx0S2l0 | VWx0S2l0 | 8 |
Čo robí Base64
Base64, definovaný v RFC 4648, zapisuje ľubovoľné bajty pomocou 64 tlačiteľných znakov ASCII: A–Z, a–z, 0–9, + a /. Každá trojica bajtov (24 bitov) sa rozdelí na štyri 6-bitové čísla a každé číslo vyberie jeden znak z abecedy. Ak dĺžka vstupu nie je násobkom troch, posledná skupina sa doplní jedným alebo dvoma znakmi =. Výsledok je vždy približne o 33 % väčší ako vstup: 4 znaky na každé 3 bajty.
Existuje preto, že mnohé kanály vznikli pre text. E-mail (MIME), adresy data: v HTML a CSS, polia JSON s obrázkami alebo certifikátmi aj hlavičky HTTP Basic autentifikácie používajú Base64 na bezpečný prenos binárnych dát. Nie je to šifrovanie a nič neskrýva; dekódovanie nepotrebuje žiadny kľúč.
Unicode a URL-safe variant
Base64 kóduje bajty, nie písmená, takže text sa musí najprv previesť na bajty. Tento nástroj vždy používa UTF-8, kódovanie, na ktorom beží web: é sa zmení na dva bajty a emoji na štyri. Samotná vstavaná funkcia prehliadača btoa vyhodí chybu pri každom znaku nad U+00FF, preto jednoduché kódovače zlyhávajú pri diakritike a emoji; tu text najprv prejde cez TextEncoder a dekódovanie ho vracia späť cez TextDecoder. Ak dekódované bajty nie sú platné UTF-8 (obrázok, súbor zip), nástroj ich namiesto skomolenéhoho textu zobrazí hexadecimálne.
Štandardný Base64 používa + a /, ktoré majú v URL adresách a názvoch súborov špeciálny význam. URL-bezpečná abeceda z časti 5 RFC 4648 ich nahrádza znakmi - a _ a výplň sa zvyčajne vynecháva. Presne túto podobu používajú JSON Web Tokeny. Dekodér akceptuje obe abecedy aj chýbajúcu výplň, takže môžete vložiť ktorúkoľvek.
Kódovanie súborov a obrázkov
Vyberte súbor a nástroj ho lokálne načíta cez FileReader a vráti jeho Base64 alebo úplnú adresu data: s typom MIME súboru, pripravenú na vloženie do značky img alebo do pozadia v CSS. Vložené obrázky ušetria jednu požiadavku HTTP, no zväčšia sa o tretinu a nedajú sa ukladať do vyrovnávacej pamäte samostatne, preto sa hodia skôr na malé ikony než na fotky. Na obrázky s náhľadom a hotovými úryvkami HTML a CSS použite Obrázok na Base64.
Často kladené otázky
- Prečo je výstup v Base64 dlhší ako vstup?
- Každé 3 bajty sa zmenia na 4 znaky, takže výstup má približne 4/3 veľkosti vstupu plus najviac dva znaky výplne. Text mimo ASCII je ešte dlhší, pretože UTF-8 používa na znak dva až štyri bajty.
- Čo znamenajú znaky = na konci?
- Výplň. Vďaka nej je dĺžka výstupu násobkom štyroch, keď dĺžka vstupu nie je násobkom troch. Jedno = znamená, že posledná skupina mala dva bajty, dve == znamenajú, že mala jeden bajt.
- Prečo dekódovanie zlyhá s chybou neplatného znaku?
- Vstup obsahuje niečo mimo abecedy, napríklad medzeru vnútri slova, úvodzovku alebo % z kódovania URL. Zalomenia riadkov a chýbajúca výplň sa tolerujú; iné znaky nie.
- Je bezpečné zakódovať heslo do Base64?
- Base64 neponúka žiadnu ochranu. HTTP Basic autentifikácia posiela user:password v Base64, preto sa smie používať iba cez HTTPS. Na ochranu tajomstiev použite skutočné šifrovanie alebo hashovanie.
- Aký je rozdiel medzi Base64 a Base64url?
- Líši sa len v dvoch znakoch a výplni: Base64url používa - a _ namiesto + a / a zvyčajne vynecháva =, takže výsledok môže byť v URL adresách a názvoch súborov bez escapovania.