Přeskočit na obsah

Base64 Kodér Dekodér - Bezplatný Online Nástroj pro Konverzi Base64

Bezplatný nástroj pro kódování a dekódování base64. Okamžitě převeďte text do Base64 nebo dekódujte Base64 řetězce. Podporuje standardní a URL-bezpečné kódování. Nevyžaduje přihlášení.

Base64 Enkodér/Dekodér

Převeďte text do a z Base64 kódování

Kalkulačka načítání...
📚

Dokumentace

Co je kódování Base64?

Base64 je způsob, jak převést libovolná data včetně binárních dat, například obrázků, na prostý text tvořený pouze písmeny, číslicemi a několika symboly. Kodér Base64 převádí data do této textové podoby. Dekodér Base64 je převádí zpět na původní data. Programy používají Base64 k bezpečnému přenosu binárních dat systémy, jako jsou e-mail nebo JSON, které očekávají prostý text.

Base64 používá abecedu 64 znaků:

  • Velká písmena A–Z (26 znaků)
  • Malá písmena a–z (26 znaků)
  • Číslice 0–9 (10 znaků)
  • Dva symboly, obvykle + a / (2 znaky)

Některé systémy také na konci výstupu používají rovnítko (=) jako doplnění. Doplnění není součástí abecedy o 64 znacích; pouze doplňuje délku.

Proč Base64 existuje

Mnoho starších textových protokolů včetně e-mailu (SMTP) a některých částí HTTP bylo navrženo pro přenos 7bitového textu ASCII. Mohou poškodit nezpracované binární bajty, například bajty uvnitř obrázku JPEG. Base64 tomu předchází tak, že každý bajt reprezentuje pouze pomocí bezpečných tisknutelných znaků. Proto e-mailové přílohy, obrázky vložené na webových stránkách a binární pole uvnitř JSON běžně nejprve procházejí kódováním Base64.

Base64 není komprese ani šifrování. Kódovaný výstup je vždy větší než vstup a kdokoli jej může dekódovat bez hesla nebo klíče.

Jak tento nástroj používat

  1. Zadejte nebo vložte text do vstupního pole.
  2. Zvolte „Encode to Base64“ pro převod textu na Base64, nebo „Decode from Base64“ pro převod řetězce Base64 zpět na text.
  3. Zapněte živý převod, aby se výstup při psaní automaticky aktualizoval.
  4. Výsledek zkopírujte tlačítkem pro kopírování.

Nástroj čte a zapisuje standardní text Unicode, takže správně kóduje a dekóduje písmena s diakritikou, symboly i emoji, nejen běžná anglická písmena.

Jak funguje kódování Base64

Base64 převádí každé 3 bajty vstupu (24 bitů) na 4 výstupní znaky (každý nese 6 bitů), protože 24 děleno 6 se rovná 4.

  1. Vezměte vstupní bajty a zapište je v binární podobě.
  2. Seskupte bity do bloků po 24 bitech (3 bajtech).
  3. Každý blok o 24 bitech rozdělte na čtyři části po 6 bitech.
  4. Každé 6bitové číslo (od 0 do 63) vyhledejte v abecedě Base64 a zapište odpovídající znak.

Pokud délka vstupu není násobkem 3, poslední blok je kratší. Kodér jej doplní nulovými bity a poté do výstupu přidá znaky =, aby výsledek stále vyšel ve skupinách po 4:

  • Jeden zbývající bajt vytvoří 2 znaky Base64 a ==.
  • Dva zbývající bajty vytvoří 3 znaky Base64 a jedno =.

Příklad kódování Base64

Kódování slova „Hello“:

  1. Hodnoty ASCII: 72, 101, 108, 108, 111
  2. Binární podoba: 01001000 01100101 01101100 01101100 01101111
  3. První 3 bajty (24 bitů) se rozdělí na čtyři skupiny po 6 bitech: 010010 000110 010101 101100, což jsou čísla 18, 6, 21, 44 → znaky S, G, V, s.
  4. Zbývající 2 bajty (16 bitů) se rozdělí na tři skupiny po 6 bitech a na konci se přidají 2 nulové bity: 011011 000110 111100, což jsou čísla 27, 6, 60 → znaky b, G, 8.
  5. Protože zbyly 2 bajty, na konec se přidá jedno =.
  6. Výsledek: SGVsbG8=

Dekódování tyto kroky obrací: každý znak se převede zpět na své 6bitové číslo, bity se spojí do proudu a tento proud se znovu načte v bajtech o velikosti 8 bitů.

Vzorec pro délku kódovaného řetězce Base64

Pro vstup o délce n bajtů je kódovaná délka ve znacích:

encoded_length = 4 × ⌈n / 3⌉

kde ⌈x⌉ znamená zaokrouhlení nahoru na nejbližší celé číslo. Vzorec ukazuje, proč je výstup Base64 vždy přibližně o třetinu větší než vstup: 4 výstupní znaky na každé 3 vstupní bajty představují nárůst o 33 %.

Kde se Base64 používá

  • E-mailové přílohy (MIME). E-mail byl navržen pro text, proto se souborové přílohy před odesláním převádějí na Base64, čímž je přiložený soubor přibližně o 33 % větší než originál.
  • Datové URI. Malé obrázky lze vložit přímo do HTML nebo CSS jako text, například data:image/png;base64,iVBORw0KGgo..., takže není nutné vyžadovat samostatný soubor. Nejlépe to funguje u malých souborů, protože velké soubory zvětšují stránku a nelze je samostatně ukládat do mezipaměti.
  • API a JSON. JSON nemá nativní způsob uložení nezpracovaných binárních dat, proto se binární soubory odesílané prostřednictvím rozhraní API JSON často nejprve kódují pomocí Base64.
  • Základní autentizace HTTP. Hlavička Authorization kóduje uživatelské jméno a heslo jako Base64, například Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=. Samo o sobě to není bezpečné; přihlašovací údaje si může přečíst každý, kdo je zachytí, proto by se základní autentizace měla používat pouze přes HTTPS.
  • Webové tokeny JSON (JWT). JWT se skládá z částí oddělených tečkami a každá část je zakódována pomocí Base64URL, varianty, kterou lze bezpečně vložit do adresy URL.
  • Ukládání binárních dat jako textu. Databáze nebo konfigurační soubory, které přijímají pouze text, někdy ukládají binární data jako řetězec Base64.

Base64 ve srovnání s jinými kódováními

Base64 bezpečné pro URL nahrazuje standardní znaky + a / znaky - a _, protože + a / mají v URL zvláštní význam. Používá se pro JWT, parametry dotazů v URL a názvy souborů. Tento nástroj vytváří standardní výstup Base64; převod do varianty bezpečné pro URL vyžaduje pouze záměnu těchto dvou znaků.

Base32 používá abecedu o 32 znacích, takže každý znak nese 5 bitů místo 6. Převádí každých 5 bajtů na 8 znaků, s režijní velikostí 60 % (8 ÷ 5 = 1,6), ve srovnání s 33 % u Base64. Base32 se volí tehdy, když je nutné výstup ručně přepisovat nebo číst po telefonu, protože nepoužívá kombinaci velkých a malých písmen ani snadno zaměnitelné znaky.

Šestnáctková soustava používá 16 znaků (0–9, A–F) a potřebuje 2 znaky na bajt, čímž zdvojnásobuje velikost (režie 100 %). Běžně se používá k zobrazování hashů, barev a MAC adres, kde je čitelnost důležitější než úspora místa.

Kdy Base64 nepoužívat

Base64 zvětšuje objem dat a zatěžuje procesor, proto se nehodí pro velké soubory odesílané přes síť; přímé odeslání nezpracovaných binárních dat je menší a rychlejší. Nelze je používat ke skrývání citlivých údajů, jako jsou hesla nebo klíče API, protože dekódování nevyžaduje žádné tajemství. Pro ukládání velkých souborů je obvykle vhodnější binární sloupec databáze nebo služba pro ukládání souborů než dlouhý řetězec Base64 v textovém poli.

Časté chyby

  • Vynechání převodu do UTF-8. Kódování textu s písmeny s diakritikou nebo emoji bez předchozího převodu na bajty UTF-8 může poškodit výstup.
  • Odstranění doplnění. Některé systémy odstraňují koncové znaky =. Většina dekodérů může stále fungovat, pokud se délka řetězce znovu doplní na násobek 4, ale ne všechny je přijímají, takže je bezpečnější doplnění ponechat.
  • Zbylá zalomení řádků. Kodéry e-mailu MIME rozdělují výstup na řádky o délce nejvýše 76 znaků. Podle RFC 4648 může dekodér zalomení řádků a další znaky mimo abecedu odmítnout, proto je nejlepší je před dekódováním odstranit.
  • Záměna variant. Standardní Base64 a Base64 bezpečné pro URL používají pro stejné dvě pozice v abecedě odlišné znaky; dekódování pomocí nesprávné varianty vytvoří nesmyslný výsledek nebo chybu.

Často kladené otázky

Je Base64 formou šifrování? Ne. Jde o vratné textové kódování, nikoli o šifrování. Řetězec Base64 může kdokoli okamžitě dekódovat bez hesla. Pokud mají data zůstat utajena, použijte šifrovací algoritmus, například AES.

Proč Base64 zvětšuje data? Protože jeden celý znak obsahuje pouze 6 bitů, zatímco nezpracovaný bajt obsahuje 8 bitů. Převod 3 bajtů (24 bitů) na 4 znaky znamená, že výstup je 4/3 vstupu, tedy přibližně o 33 % větší než vstup.

Dokáže Base64 kódovat obrázky a jiné binární soubory? Ano. Libovolný binární soubor včetně obrázků, PDF a zvukových souborů lze zakódovat pomocí Base64 a dekódovat zpět bajt po bajtu. Běžně se používá pro malé obrázky vložené do HTML nebo CSS, ale pro velké soubory je nevhodné.

Jaký je rozdíl mezi Base64 a Base64URL? Base64URL nahrazuje standardní znaky + a / znaky - a _, takže je výsledek bezpečné vložit do URL nebo názvu souboru bez dalšího escapování. JWT používají Base64URL právě z tohoto důvodu.

Proč mi řetězec Base64 při dekódování hlásí chybu „neplatný“? Nejčastějšími příčinami jsou chybějící doplnění =, zbloudilé mezery nebo zalomení řádků v řetězci či znaky, které do abecedy Base64 nepatří, například použití + a /, když byl řetězec zakódován variantou bezpečnou pro URL.

Odkud pochází Base64? Base64 bylo standardizováno pro e-mail jako součást MIME v RFC 2045, vydaném v listopad 1996. Aktuální referenční specifikací pro Base64, Base32 a Base16 je RFC 4648, vydané v říjen 2006.

Reference

  1. Internet Engineering Task Force. RFC 4648: The Base16, Base32, and Base64 Data Encodings. RFC 4648 — skupiny po 24 bitech na 4 znaky, pravidla doplnění =, abeceda bezpečná pro URL a skupiny po 40 bitech u Base32.
  2. Internet Engineering Task Force. RFC 2045: Multipurpose Internet Mail Extensions (MIME) Part One. RFC 2045 — Base64 v e-mailu MIME a limit 76 znaků na řádek.
  3. Internet Engineering Task Force. RFC 7617: The 'Basic' HTTP Authentication Scheme. RFC 7617 — základní autentizace kóduje přihlašovací údaje pomocí Base64 a bez TLS není bezpečná.
  4. Internet Engineering Task Force. RFC 7519: JSON Web Token (JWT). RFC 7519 — každá část JWT je zakódována pomocí Base64URL.