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ý obsahuje 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 pomocí Base64, například Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=. Sama o sobě není bezpečná; přihlašovací údaje může přečíst kdokoli, kdo je zachytí, proto by se základní autentizace měla používat pouze přes HTTPS.
  • Webové tokeny JSON (JWT). Každá ze tří částí tokenu JWT je kódována pomocí Base64URL, varianty bezpečné pro vložení do 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é konce řádků. Starší kodéry založené na MIME vkládají konec řádku každých 76 znaků; většina moderních dekodérů očekává jeden souvislý řetězec bez těchto konců řádků.
  • 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 má velikost 4/3, 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č můj řetězec Base64 při dekódování hlásí chybu „neplatný“? Nejčastějšími příčinami jsou znaky, které nepatří do abecedy Base64, například - a _ používané variantou bezpečnou pro URL, nebo řetězec, jehož délka je o jedna větší než násobek 4. Žádný platný řetězec Base64 nemá takovou délku. Dekódování také selže, pokud dekódované bajty netvoří platný text UTF-8. Tento nástroj ignoruje mezery a konce řádků uvnitř řetězce a dekóduje i řetězec, z něhož bylo odstraněno koncové doplnění =.

Odkud Base64 pochází? Tato technika se datuje k raným způsobům odesílání binárních dat prostřednictvím textových poštovních systémů v 1980. letech a jako součást MIME byla formálně standardizována v dokumentu RFC 2045 v roce 1996. Současnou referenční specifikací pro Base64, Base32 a Base16 je RFC 4648.