Preskočiť na obsah

Base64 Kódovač Dekódovač - Bezplatný Online Nástroj na Konverziu Base64

Bezplatný nástroj na kódovanie a dekódovanie base64. Okamžite konvertujte text do Base64 alebo dekódujte Base64 reťazce. Podporuje štandardné a URL-bezpečné kódovanie. Nevyžaduje prihlásenie.

Kódovač/Dekódovač Base64

Konvertujte text do a z Base64 kódovania

Kalkulačka načítavania...
📚

Dokumentácia

Čo je kódovanie Base64?

Base64 je spôsob, ako premeniť ľubovoľné údaje vrátane binárnych údajov, napríklad obrázkov, na obyčajný text pozostávajúci iba z písmen, číslic a niekoľkých symbolov. Kodér base64 prevádza údaje do tejto textovej podoby. Dekodér base64 ich prevádza späť na pôvodné údaje. Programy používajú Base64 na bezpečný prenos binárnych údajov cez systémy, ako sú e-mail alebo JSON, ktoré očakávajú obyčajný text.

Base64 používa abecedu pozostávajúcu zo 64 znakov:

  • Veľké písmená A–Z (26 znakov)
  • Malé písmená a–z (26 znakov)
  • Číslice 0–9 (10 znakov)
  • Dva symboly, zvyčajne + a / (2 znaky)

Niektoré systémy na konci výstupu používajú aj znak rovnosti (=) ako výplň. Výplň nie je súčasťou abecedy s 64 znakmi; iba dopĺňa dĺžku.

Prečo Base64 existuje

Mnohé staršie textové protokoly vrátane e-mailu (SMTP) a niektorých častí HTTP boli vytvorené na prenos 7-bitového textu ASCII. Nespracované binárne bajty, napríklad bajty v obrázku JPEG, sa v nich môžu poškodiť. Base64 tomu zabraňuje tým, že každý bajt reprezentuje pomocou bezpečných tlačiteľných znakov. Preto e-mailové prílohy, obrázky vložené na webových stránkach a binárne polia v JSON často najprv prechádzajú cez Base64.

Base64 nie je kompresia ani šifrovanie. Zakódovaný výstup je vždy väčší než vstup a dekódovať ho môže ktokoľvek bez hesla alebo kľúča.

Ako používať tento nástroj

  1. Zadajte alebo vložte text do vstupného poľa.
  2. Vyberte možnosť „Encode to Base64“, ak chcete previesť text na Base64, alebo „Decode from Base64“, ak chcete reťazec Base64 previesť späť na text.
  3. Zapnite živú konverziu, aby sa výstup počas písania automaticky aktualizoval.
  4. Výsledok skopírujte tlačidlom kopírovania.

Nástroj číta a zapisuje štandardný text Unicode, takže správne kóduje a dekóduje aj písmená s diakritikou, symboly a emoji, nielen obyčajné anglické písmená.

Ako funguje kódovanie Base64

Base64 prevádza každé 3 vstupné bajty (24 bitov) na 4 výstupné znaky (každý obsahuje 6 bitov), pretože 24 delené 6 sa rovná 4.

  1. Vstupné bajty zapíšte v binárnej podobe.
  2. Zoskupte bity do skupín po 24 bitoch (3 bajtoch).
  3. Každú skupinu s 24 bitmi rozdeľte na štyri časti po 6 bitoch.
  4. Každé 6-bitové číslo (od 0 po 63) vyhľadajte v abecede Base64 a zapíšte zodpovedajúci znak.

Ak dĺžka vstupu nie je násobkom 3, posledná skupina je neúplná. Kodér ju doplní nulovými bitmi a potom do výstupu pridá znaky =, aby výsledok stále pozostával zo skupín po 4:

  • Jeden zostávajúci bajt vytvorí 2 znaky Base64 a ==.
  • Dva zostávajúce bajty vytvoria 3 znaky Base64 a jeden znak =.

Príklad kódovania Base64

Kódovanie slova „Hello“:

  1. Hodnoty ASCII: 72, 101, 108, 108, 111
  2. Binárne: 01001000 01100101 01101100 01101100 01101111
  3. Prvé 3 bajty (24 bitov) sa rozdelia na štyri skupiny po 6 bitoch: 010010 000110 010101 101100, čo sú čísla 18, 6, 21, 44 → znaky S, G, V, s.
  4. Zostávajúce 2 bajty (16 bitov) sa rozdelia na tri skupiny po 6 bitoch a na koniec sa pridajú 2 nulové bity: 011011 000110 111100, čo sú čísla 27, 6, 60 → znaky b, G, 8.
  5. Keďže zostali 2 bajty, na koniec sa pridá jeden znak =.
  6. Výsledok: SGVsbG8=

Dekódovanie tieto kroky obracia: každý znak sa premení späť na svoje 6-bitové číslo, bity sa spoja do prúdu a tento prúd sa znova načíta v 8-bitových bajtoch.

Vzorec pre dĺžku kódovaného reťazca Base64

Pri vstupe s dĺžkou n bajtov je dĺžka zakódovaného reťazca v znakoch:

encoded_length = 4 × ⌈n / 3⌉

kde ⌈x⌉ znamená zaokrúhlenie nahor na najbližšie celé číslo. Vzorec ukazuje, prečo je výstup Base64 vždy približne o tretinu väčší než vstup: 4 výstupné znaky na každé 3 vstupné bajty predstavujú nárast o 33 %.

Kde sa Base64 používa

  • E-mailové prílohy (MIME). E-mail bol vytvorený na prácu s textom, preto sa prílohy súborov pred odoslaním prevádzajú na Base64, čím sa priložený súbor zväčší približne o 33 % oproti originálu.
  • Dátové URI. Malé obrázky možno vložiť priamo do HTML alebo CSS ako text, napríklad data:image/png;base64,iVBORw0KGgo..., čím sa vynechá samostatná požiadavka na súbor. Najlepšie to funguje pri malých súboroch, pretože veľké zväčšujú stránku a nemožno ich samostatne ukladať do vyrovnávacej pamäte.
  • API a JSON. JSON nemá natívny spôsob na uchovávanie nespracovaných binárnych údajov, preto sa binárne súbory odosielané cez rozhranie JSON často najprv kódujú pomocou Base64.
  • Základná autentifikácia HTTP. Hlavička Authorization kóduje používateľské meno a heslo pomocou Base64, napríklad Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=. Sama osebe nie je bezpečná; prihlasovacie údaje môže prečítať ktokoľvek, kto ich zachytí, preto by sa základná autentifikácia mala používať iba cez HTTPS.
  • JSON Web Tokens (JWT). Každá z troch častí tokenu JWT je zakódovaná pomocou Base64URL, variantu vhodného na vloženie do URL.
  • Ukladanie binárnych údajov ako textu. Databázy alebo konfiguračné súbory, ktoré prijímajú iba text, niekedy uchovávajú binárne údaje ako reťazec Base64.

Porovnanie Base64 s inými kódovaniami

Base64 bezpečné pre URL nahrádza štandardné znaky + a / znakmi - a _, pretože + a / majú v URL osobitný význam. Používa sa v tokenoch JWT, parametroch dotazov URL a názvoch súborov. Tento nástroj vytvára štandardný výstup Base64; prevod do podoby bezpečnej pre URL vyžaduje iba zámenu týchto dvoch znakov.

Base32 používa abecedu s 32 znakmi, takže každý znak obsahuje 5 bitov namiesto 6. Každých 5 bajtov prevádza na 8 znakov, čo predstavuje réžiu 60 % (8 ÷ 5 = 1,6) v porovnaní s 33 % pri Base64. Base32 sa volí vtedy, keď treba výstup zadávať ručne alebo čítať po telefóne, pretože nepoužíva kombináciu veľkých a malých písmen a vyhýba sa znakom, ktoré sa ľahko zamieňajú.

Hexadecimálne kódovanie používa 16 znakov (0–9, A–F) a potrebuje 2 znaky na bajt, čím zdvojnásobí veľkosť (réžia 100 %). Bežne sa používa na zobrazovanie hašov, farieb a MAC adries, pri ktorých je čitateľnosť dôležitejšia než úsporná veľkosť.

Kedy Base64 nepoužívať

Base64 zväčšuje veľkosť a zvyšuje výpočtové náklady, preto sa nehodí na veľké súbory odosielané cez sieť; priame odoslanie nespracovaných binárnych údajov je menšie a rýchlejšie. Nemalo by sa používať na skrytie citlivých informácií, ako sú heslá alebo kľúče API, pretože na dekódovanie nie je potrebné žiadne tajomstvo. Na ukladanie veľkých súborov je zvyčajne vhodnejší binárny stĺpec databázy alebo služba na ukladanie súborov než dlhý reťazec Base64 v textovom poli.

Bežné chyby

  • Vynechanie prevodu do UTF-8. Kódovanie textu s písmenami s diakritikou alebo emoji bez predchádzajúceho prevodu na bajty UTF-8 môže poškodiť výstup.
  • Odstránenie výplne. Niektoré systémy odstraňujú koncové znaky =. Väčšina dekodérov dokáže pracovať aj vtedy, keď sa dĺžka reťazca doplní na násobok 4, ale nie všetky to akceptujú, preto je bezpečnejšie výplň ponechať.
  • Zostávajúce zalomenia riadkov. Staršie kodéry založené na MIME vkladajú zalomenie riadka každých 76 znakov; väčšina moderných dekodérov očakáva jeden súvislý reťazec bez nich.
  • Zámena variantov. Štandardné Base64 a Base64 bezpečné pre URL používajú pre rovnaké dve pozície v abecede odlišné znaky; dekódovanie nesprávnym variantom vytvorí nezmysel alebo chybu.

Často kladené otázky

Je Base64 druh šifrovania? Nie. Ide o reverzibilné textové kódovanie, nie o šifrovanie. Reťazec Base64 môže ktokoľvek okamžite dekódovať bez hesla. Ak údaje musia zostať utajené, použite šifrovací algoritmus, napríklad AES.

Prečo Base64 zväčšuje údaje? Pretože na uloženie iba 6 bitov používa celý znak, zatiaľ čo nespracovaný bajt obsahuje 8 bitov. Prevod 3 bajtov (24 bitov) na 4 znaky znamená, že výstup je 4/3-krát, teda približne o 33 %, väčší než vstup.

Môže Base64 kódovať obrázky a iné binárne súbory? Áno. Každý binárny súbor vrátane obrázkov, PDF súborov a zvukových súborov možno zakódovať pomocou Base64 a dekódovať späť bajt po bajte. Bežne sa používa pri malých obrázkoch vložených do HTML alebo CSS, ale pri veľkých súboroch je nevhodný.

Aký je rozdiel medzi Base64 a Base64URL? Base64URL zamieňa štandardné znaky + a / za znaky - a _, takže výsledok možno bez dodatočného kódovania vložiť do URL alebo názvu súboru. JWT používa Base64URL práve z tohto dôvodu.

Prečo môj reťazec Base64 pri dekódovaní hlási chybu „invalid“? Najčastejšou príčinou sú znaky, ktoré nepatria do abecedy Base64, napríklad - a _ používané variantom bezpečným pre URL, alebo reťazec, ktorého dĺžka je o jeden väčšia než násobok 4. Takúto dĺžku nemá žiadny platný reťazec Base64. Dekódovanie zlyhá aj vtedy, keď dekódované bajty nie sú platným textom UTF-8. Tento nástroj ignoruje medzery a zalomenia riadkov v reťazci a dekóduje aj reťazec, z ktorého bola odstránená koncová výplň =.

Odkiaľ Base64 pochádza? Táto technika siaha k prvým spôsobom odosielania binárnych údajov cez poštové systémy pracujúce iba s textom v 1980. rokoch a formálne bola štandardizovaná ako súčasť MIME v dokumente RFC 2045 v roku 1996. Aktuálnou referenčnou špecifikáciou pre Base64, Base32 a Base16 je RFC 4648.