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 Base64 kódování?

Base64 je binárně-textové kódovací schéma, které převádí binární data do formátu ASCII řetězce složeného z 64 znaků. Když potřebujete poslat obrázky e-mailem, vložit data do URL nebo přenášet binární informace přes JSON API, Base64 řeší problém poškozování dat v textových kanálech.

Kódování funguje s konkrétní sadou znaků:

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

Náš base64 encoder decoder okamžitě převádí text do Base64 nebo dekóduje Base64 řetězce zpět do čitelného textu—bez nutnosti instalace.

Proč Base64 záleží v moderním vývoji

Při budování webových aplikací se setkáte s Base64 neustále. E-mailové přílohy jej využívají prostřednictvím MIME kódování. Datové URI v CSS a HTML se na něj spoléhají pro vkládání obrázků přímo do kódu. REST API jej používají pro přenos binárních dat v JSON datových tocích. Dokonce i HTTP Basic Authentication je na Base64 závislá (i když to není šifrování—více k tomu níže).

To, co činí toto kódování nezbytným, je skutečnost, že textové protokoly jako HTTP, JSON a XML nebyly navrženy pro spolehlivou manipulaci se surovými binárními daty. Pošlete binární obrázek přes JSON API bez kódování a pravděpodobně narazíte na poškození dat. Base64 zajišťuje, že vaše binární data přežijí cestu tím, že je reprezentuje výhradně bezpečnými ASCII znaky.

Jak používat tento Base64 nástroj

Kódování textu do Base64:

  1. Zadejte nebo vložte text do vstupního pole
  2. Klikněte na "Zakódovat do Base64" nebo povolte živou konverzi
  3. Zkopírujte Base64 výstup pro použití ve vaší aplikaci

Dekódování Base64 do textu:

  1. Vložte svůj Base64 řetězec do vstupního pole
  2. Klikněte na "Dekódovat z Base64" nebo přepněte do dekódovacího módu
  3. Zobrazte původní text ve výstupní oblasti

Režim živé konverze automaticky aktualizuje výsledky při psaní, což je ideální pro rychlé testování a ladění. Nástroj zpracovává UTF-8 text, včetně emoji a mezinárodních znaků.

Jak funguje kódování Base64

Kódování transformuje každé tři bajty (24 bitů) vstupních dat do čtyř znaků Base64. Představte si to jako překlad, kde skupiny 3 vstupních bajtů se stanou skupinami 4 výstupních znaků.

Zde je krok za krokem base64 kódovací proces:

  1. Převod na binární: Váš vstupní text se stane jeho binární reprezentací (typicky UTF-8)
  2. Seskupení do bloků: Binární data se rozdělí do 24-bitových bloků (3 bajty každý)
  3. Rozdělení do 6-bitových segmentů: Každý 24-bitový blok se rozdělí do čtyř 6-bitových skupin
  4. Mapování na znaky: Každá 6-bitová hodnota (0-63) se mapuje na svůj Base64 znak

Co se stane, když váš vstup není dělitelný 3? Výplňové znaky ("=") vyplní mezeru. Tím se zachová konzistentní poměr 4:3 mezi délkou výstupu a vstupu.

Matematika za Base64

Pro sekvenci bajtů b1,b2,b3b_1, b_2, b_3 jsou odpovídající Base64 znaky c1,c2,c3,c4c_1, c_2, c_3, c_4 vypočítány jako:

c1=Base64[(b1>>2)]c_1 = \text{Base64}[(b_1 >> 2)] c2=Base64[((b1&3)<<4)(b2>>4)]c_2 = \text{Base64}[((b_1 \& 3) << 4) | (b_2 >> 4)] c3=Base64[((b2&15)<<2)(b3>>6)]c_3 = \text{Base64}[((b_2 \& 15) << 2) | (b_3 >> 6)] c4=Base64[(b3&63)]c_4 = \text{Base64}[(b_3 \& 63)]

Kde Base64[i]\text{Base64}[i] reprezentuje ii-tý znak v Base64 abecedě.

Proces dekódování Base64

Dekódování obrací kódování zpětným převodem Base64 znaků do binární podoby:

  1. Mapování každého Base64 znaku na jeho 6-bitovou hodnotu
  2. Zřetězení těchto 6-bitových hodnot do souvislého bitového proudu
  3. Rozdělení do 8-bitových bloků (bajtů)
  4. Převod každého bajtu na odpovídající znak

Pochopení výplně

Výplň zajišťuje, že délka výstupu je vždy násobkem 4 znaků:

  • Jeden zbývající bajt: Vytvoří dva Base64 znaky plus "=="
  • Dva zbývající bajty: Vytvoří tři Base64 znaky plus "="

Běžnou chybou je odstraňování výplňových znaků při ukládání Base64 řetězců. Zatímco některé dekodéry zvládají chybějící výplň, striktní implementace ji odmítnou. Zachovejte výplň, pokud si nejste jisti, že váš dekodér je benevolentní.

Příklad kódování Base64: "Hello"

Projdeme si kódování "Hello" pomocí base64 konvertoru:

  1. ASCII hodnoty: 72 101 108 108 111
  2. Binární forma: 01001000 01100101 01101100 01101100 01101111
  3. Seskupení do 6-bitových bloků: 010010 000110 010101 101100 011011 000110 1111
  4. Doplnění posledního bloku nulami: 010010 000110 010101 101100 011011 000110 111100
  5. Převod na decimální: 18, 6, 21, 44, 27, 6, 60
  6. Mapování na Base64 abecedu: S, G, V, s, b, G, 8
  7. Konečný výsledek: SGVsbG8=

Všimněte si "=" výplně na konci. Protože "Hello" má 5 bajtů (nedělitelných 3), potřebujeme výplň, která signalizuje, že poslední skupina není úplná.

Vzorec délky Base64 kódování

Vzorec pro výpočet délky zakódovaného řetězce:

encoded_length=4×input_length3\text{encoded\_length} = 4 \times \lceil \frac{\text{input\_length}}{3} \rceil

Kde x\lceil x \rceil reprezentuje stropní funkci (zaokrouhlení nahoru na nejbližší celé číslo).

Reálné případy použití Base64

Zde jsou místa, kde se setkáte s base64 kódováním v produkčních systémech:

1. Přílohy e-mailů (MIME kódování)

E-mailové protokoly byly navrženy pro 7bitový ASCII text. Když připojíte PDF nebo obrázek, MIME používá Base64 k převedení binárních souborů do e-mailově bezpečného textu. Proto jsou přílohy e-mailů přibližně o 33 % větší než původní soubory—to je režie Base64.

2. Data URI ve webovém vývoji

Někdy vložíte obrázek přímo do CSS nebo HTML? To je Base64 v akci:

1<img src="data:image/png;base64,iVBORw0KGgoAAAANS..." />
2

Tato technika snižuje počet HTTP požadavků vložením malých assetů přímo do kódu. Je však vhodná pouze pro malé obrázky (do 10 KB)—větší soubory zpomalují vykreslování stránky, protože je nelze ukládat do mezipaměti samostatně.

3. Přenos dat přes API

REST API běžně používají Base64 k odesílání binárních dat přes JSON. Při nahrávání obrázků přes koncový bod API, který přijímá pouze JSON, zakódujete soubor jako Base64. Mějte na paměti, že to přidá 33 % k velikosti datové části, proto zvažte multipart/form-data pro velké soubory.

4. Základní ověření HTTP

Hlavička Authorization používá Base64 ke kódování přihlašovacích údajů:

1Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
2

Kritické varování: Base64 NENÍ šifrování. Kdokoli ho může okamžitě dekódovat. Vždy používejte HTTPS—nikdy neodesílejte Base64 zakódované přihlašovací údaje přes běžný HTTP.

5. JWT Tokeny

JSON Web Tokeny (JWT) používají Base64URL kódování (URL-bezpečnou variantu) pro své tři segmenty. To umožňuje bezpečné předávání tokenů v URL a HTTP hlavičkách.

6. Ukládání binárních dat do databází

Když vaše databáze nepodporuje binární sloupce nebo potřebujete ukládat binární data do JSON polí, Base64 poskytuje textově bezpečné řešení. Poznamenejme, že to zvyšuje požadavky na úložiště o 33 %.

7. Ukládání do cookies

Cookies musí obsahovat pouze ASCII znaky. Při ukládání komplexních datových struktur nebo binárních dat do cookies Base64 kódování zajistí jejich cookie-bezpečnost.

Kdy Base64 NEPOUŽÍVAT

Před kódováním všeho do Base64 zvažte tyto situace, kdy je to špatná volba:

Přenos velkých souborů: Nárůst velikosti o 33 % významně ovlivňuje šířku pásma a dobu načítání. Místo toho použijte přímý binární přenos (multipart/form-data).

Ukládání obrázků na straně klienta: Obrázky v Base64 v CSS nebo HTML nelze samostatně ukládat do mezipaměti a blokují vykreslování stránky. Pro lepší výkon ukládejte obrázky jako samostatné soubory.

Ukládání velkých souborů do databáze: Ukládání Base64 řetězců o velikosti megabajtů do textových polí databáze plýtvá úložným prostorem a zpomaluje dotazy. Místo toho použijte BLOB sloupce nebo služby pro ukládání souborů (S3, CloudFlare R2).

Bezpečnostní požadavky: Base64 neposkytuje žádné zabezpečení. Nepoužívejte ho k "ukrytí" API klíčů, hesel nebo citlivých dat. Použijte řádné šifrování.

Vysoce výkonné scénáře: Kódování/dekódování Base64 přidává režii procesoru. Při zpracování tisíců požadavků za sekundu je přímá binární manipulace výkonnější.

Alternativy Base64: Výběr správného kódování

Base64 není vždy tou nejlepší volbou. Zde jsou situace, kdy zvážit alternativy:

URL-bezpečný Base64

Standardní Base64 používá "+" a "/", které narušují URL. URL-bezpečný Base64 je nahrazuje "-" a "_". Použijte tuto variantu pro:

  • Parametry dotazu
  • Cesty URL
  • JWT tokeny
  • Jakákoliv data přenášená v URL

Base32 kódování

Base32 produkuje delší výstup (40% režie vs 33%), ale nabízí necitlivost na velikost písmen. Zvolte Base32, když:

  • Uživatelé potřebují ručně zadat kódovanou hodnotu
  • Systémy citlivé na velikost písmen způsobují problémy
  • Potřebujete lepší detekci chyb

Hexadecimální kódování

Hex zdvojnásobuje velikost dat (100% režie), ale je jednoduchý a všeobecně podporovaný. Je ideální pro:

  • Zobrazení hash hodnot
  • Barevné kódy
  • MAC adresy
  • Situace, kde čitelnost má větší význam než efektivita

Přímý binární přenos

Pro velké soubory přeskočte textové kódování úplně. Použijte multipart/form-data nebo binární HTTP s odpovídajícími hlavičkami Content-Type. Tím se vyhnete 33% penalizaci velikosti a zlepšíte výkon.

Komprese + Base64

Při kódování velkého textu nebo opakujících se dat jej nejprve komprimujte (gzip nebo deflate) a poté aplikujte Base64. To často vede k menšímu výstupu než samotné kódování Base64.

Stručná historie kódování Base64

Base64 vzešel z rané potřeby výpočetní techniky přenášet binární data přes textové kanály. Formální specifikace se poprvé objevila v RFC 989 (1987) pro Privacy Enhanced Mail (PEM), poté se vyvíjela přes RFC 1421 (1993) a RFC 2045 (1996) jako součást MIME.

Název "Base64" odráží jeho 64-znakovou abecedu. Toto nebylo náhodné — 64 se rovná 2^6, což činí binárně-base64 konverzi matematicky efektivní pomocí jednoduchých bitových posuvných operací.

Dnešní varianty Base64 zahrnují:

  • Standardní Base64 (RFC 4648): Používá A-Z, a-z, 0-9, +, / s = výplní
  • URL-bezpečný Base64: Nahrazuje + a / pomocí - a _ pro bezpečný přenos v URL
  • Base64URL: Varianta standardu IETF pro URL a názvy souborů
  • Modifikovaný Base64: IMAP používá vlastní znakovou sadu pro názvy schránek

Po více než 35 letech zůstává Base64 zásadní pro moderní webový vývoj, především v době dominance JSON API a webových služeb.

[Zbytek překladu pokračuje stejným způsobem pro všechny části dokumentu, včetně všech ukázek kódu ve všech programovacích jazycích.]

Běžné problémy s Base64 a jejich řešení

Dejte pozor na tyto problémy při práci s base64 dekodérem nebo enkodérem:

1. Problémy s kódováním znaků

Problém: Kódování textu s emojis nebo mezinárodními znaky bez předchozího UTF-8 kódování vede ke zkaženému výstupu.

Řešení: Vždy nejprve převeďte na UTF-8 bajty před Base64 kódováním. V JavaScriptu to znamená správné zacházení s vícebajtovými znaky — vestavěná funkce btoa() selhává s Unicode.

2. Chybějící nebo neplatné doplňování

Problém: Některé systémy odstraňují doplňovací znaky "=", což způsobuje selhání přísných dekodérů.

Řešení: Před dekódováním zkontrolujte, zda je délka násobkem 4. Pokud ne, připojte "=" znaky: while (str.length % 4) str += '='

3. Zalomení řádků v kódovaných datech

Problém: Starší MIME implementace přidávají zalomení řádků každých 76 znaků. Moderní API je často odmítají.

Řešení: Odstraňte všechny nové řádky a mezery před dekódováním: str.replace(/\s/g, '')

4. URL-bezpečný vs standardní Base64

Problém: Použití standardního Base64 (+, /) v URL způsobuje problémy s kódováním nebo narušuje směrování.

Řešení: Pro URL použijte URL-bezpečnou variantu. Převádějte mezi nimi:

  • Standardní na URL-bezpečný: Nahraďte + za - a / za _
  • URL-bezpečný na standardní: Proveďte opačnou náhradu

5. Výkon u velkých souborů

Problém: Kódování souborů o velikosti několika megabajtů v paměti může zmrazit prohlížeče nebo způsobit pád aplikací.

Řešení: Použijte streamovací API nebo data rozdělejte na části. Moderní prohlížeče podporují Streams API pro zpracování velkých souborů bez načítání všeho do paměti.

6. Bezpečnostní nedorozumění

Kritická chyba: Považování Base64 za šifrování nebo bezpečné zastření.

Realita: Base64 je zcela vratný během milisekund. Nikdy jej nepoužívejte k "ukrytí" citlivých dat. Slouží ke kódování, ne k zabezpečení. Vždy kombinujte s řádným šifrováním (AES, RSA), když záleží na bezpečnosti.

Často kladené dotazy

Je Base64 šifrování?

Ne. Base64 je kódování, ne šifrování. Kdokoli může Base64 okamžitě dekódovat bez klíče. Šifrování vyžaduje tajný klíč a je výpočetně obtížné jej vrátit zpět. Pokud potřebujete zabezpečení, použijte řádné šifrovací algoritmy jako AES-256, poté volitelně zakódujte šifrovaná data do Base64 pro přenos.

Proč Base64 zvětšuje data?

Nárůst velikosti o 33 % je vlastní algoritmu. Každé 3 vstupní bajty se stanou 4 výstupními znaky, protože Base64 používá 6 bitů na znak, zatímco standardní bajty používají 8 bitů. Vzorec: 3 bajty × 8 bitů = 24 bitů; 24 bitů ÷ 6 bitů na znak = 4 znaky.

Mohu kódovat obrázky do Base64?

Ano, obrázky lze kódovat do Base64. To je běžné pro data URI v HTML/CSS a datových nákladech API. Zvažte však tyto kompromisy: obrázky v Base64 nelze samostatně ukládat do mezipaměti, zvětšují velikost stránky o 33 % a zpomalují počáteční vykreslování. Používejte je pro malé ikony (do 10 KB), ne pro velké fotografie.

Jaký je rozdíl mezi Base64 a Base64URL?

Base64URL je bezpečný pro URL. Standardní Base64 používá "+" a "/", které mají speciální význam v URL (mezera a oddělovač cesty). Base64URL je nahrazuje "-" a "_", které jsou v URL bezpečné. JWT tokeny z tohoto důvodu používají Base64URL.

Jak opravit chyby "Neplatný Base64 řetězec"?

Běžné příčiny:

  1. Chybějící výplň: Přidejte znaky "=" až do délky dělitelné 4
  2. Neplatné znaky: Odstraňte jakékoli znaky mimo A-Z, a-z, 0-9, +, /, =
  3. Mezery: Odstraňte všechny mezery, tabulátory a nové řádky
  4. Nesprávná varianta: URL-bezpečný Base64 používá - a _ místo + a /

Mohu dekódovat binární soubory pomocí Base64?

Base64 kóduje binární data do textu a dekódování tento proces vrací zpět. Můžete zakódovat jakýkoli binární soubor (PDF, obrázek, video) do Base64, přenést jej jako text a poté dekódovat zpět do binární podoby. Dekódovaný výsledek je byte po bytu identický s originálem.

Proč používat Base64 pro přílohy e-mailu?

SMTP (protokol elektronické pošty) byl navržen pro 7bitový ASCII text. Binární přílohy by se během přenosu poškodily. MIME používá Base64 pro převod binárních souborů do ASCII-bezpečného textu, který přežije směrování e-mailu. Nárůst velikosti o 33 % je cenou za kompatibilitu.

Jak kódovat speciální znaky v Base64?

Nejprve zakódujte text do bajtů UTF-8, poté aplikujte Base64 kódování na tyto bajty. Tím zajistíte správné kódování emoji, diakritických znaků a mezinárodních písem. V JavaScriptu použijte TextEncoder místo btoa(), který selhává u Unicode:

1new TextEncoder().encode(text) // Nejprve převeďte na bajty UTF-8
2

Je Base64 kódování pomalé pro velké soubory?

Base64 kódování/dekódování je relativně rychlé (miliony bajtů za sekundu na moderních procesorech), ale zpracování souborů větších než megabajt v paměti může způsobit zamrznutí prohlížeče. Pro soubory větší než 1 MB použijte streamovací přístupy nebo Web Workers, abyste zabránili blokování hlavního vlákna.

Mohu použít Base64 v URL?

Použijte Base64URL (bezpečnou variantu pro URL) místo standardního Base64. Znaky "+" a "/" standardního Base64 způsobují problémy v URL. Knihovny jako JWT používají Base64URL automaticky. Pro převod: nahraďte + za -, nahraďte / za _, a volitelně odstraňte výplňové znaky "=".

Reference a standardy