🛠️

Whiz Tools

Build • Create • Innovate

Base64 kódovač a dekodér: Prevod textu na/z Base64

Bezplatný online nástroj na kódovanie textu do Base64 alebo dekódovanie Base64 reťazcov späť na text. Podporuje štandardné a URL-bezpečné Base64 kódovanie s okamžitou konverziou.

Base64 Encoder/Decoder

Preveďte text na a z Base64 kódovania

Kopírovať
📚

Dokumentácia

Kódovač a dekodér Base64

Úvod

Base64 je schéma kódovania binárnych údajov do textu, ktoré predstavuje binárne dáta vo formáte ASCII reťazca. Je navrhnuté na prenášanie údajov uložených v binárnych formátoch cez kanály, ktoré spoľahlivo podporujú iba textový obsah. Kódovanie Base64 prevádza binárne dáta do súboru 64 znakov (odtiaľ názov), ktoré môžu byť bezpečne prenášané cez textové protokoly bez poškodenia údajov.

Znaková sada Base64 pozostáva z:

  • Veľkých písmen A-Z (26 znakov)
  • Malých písmen a-z (26 znakov)
  • Čísel 0-9 (10 znakov)
  • Dvoch ďalších znakov, typicky "+" a "/" (2 znaky)

Tento nástroj vám umožňuje jednoducho kódovať text do formátu Base64 alebo dekódovať Base64 reťazce späť do ich pôvodného textu. Je obzvlášť užitočný pre vývojárov, IT profesionálov a každého, kto pracuje s údajmi, ktoré musia byť bezpečne prenášané cez textové kanály.

Ako funguje kódovanie Base64

Proces kódovania

Kódovanie Base64 funguje tak, že prevádza každú skupinu troch bajtov (24 bitov) binárnych údajov na štyri znaky Base64. Proces nasleduje tieto kroky:

  1. Preveďte vstupný text na jeho binárnu reprezentáciu (používajúc ASCII alebo UTF-8 kódovanie)
  2. Skupinujte binárne dáta do blokov po 24 bitoch (3 bajty)
  3. Rozdeľte každý 24-bitový blok na štyri 6-bitové skupiny
  4. Preveďte každú 6-bitovú skupinu na jej zodpovedajúci znak Base64

Keď dĺžka vstupu nie je deliteľná tromi, pridáva sa padding s "=" znakmi, aby sa udržal pomer 4:3 medzi dĺžkami výstupu a vstupu.

Matematická reprezentácia

Pre sekvenciu bajtov b1,b2,b3b_1, b_2, b_3 sa zodpovedajúce znaky Base64 c1,c2,c3,c4c_1, c_2, c_3, c_4 vypočítajú ako:

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] predstavuje ii-tý znak v abecede Base64.

Proces dekódovania

Dekódovanie Base64 obracia proces kódovania:

  1. Preveďte každý znak Base64 na jeho 6-bitovú hodnotu
  2. Spojte tieto 6-bitové hodnoty
  3. Skupinujte bity do 8-bitových blokov (bajty)
  4. Preveďte každý bajt na jeho zodpovedajúci znak

Padding

Keď počet bajtov na kódovanie nie je deliteľný tromi, aplikuje sa padding:

  • Ak zostáva jeden bajt, prevádza sa na dva Base64 znaky nasledované "=="
  • Ak zostávajú dva bajty, prevádzajú sa na tri Base64 znaky nasledované "="

Príklad

Poďme zakódovať text "Hello" do Base64:

  1. ASCII reprezentácia "Hello": 72 101 108 108 111
  2. Binárna reprezentácia: 01001000 01100101 01101100 01101100 01101111
  3. Skupinovanie do 6-bitových blokov: 010010 000110 010101 101100 011011 000110 1111
  4. Posledný blok má iba 4 bity, takže pridáme nuly: 010010 000110 010101 101100 011011 000110 111100
  5. Prevádzanie na desiatkovú sústavu: 18, 6, 21, 44, 27, 6, 60
  6. Hľadanie v abecede Base64: S, G, V, s, b, G, 8
  7. Výsledok je "SGVsbG8="

Poznámka: "=" padding na konci, pretože dĺžka vstupu (5 bajtov) nie je deliteľná tromi.

Formula

Všeobecný vzorec na výpočet dĺžky Base64 zakódovaného reťazca je:

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

Kde x\lceil x \rceil predstavuje funkciu zaokrúhľovania nahor (zaokrúhľovanie na najbližšie celé číslo).

Použitie

Kódovanie Base64 sa široko používa v rôznych aplikáciách:

  1. Prílohy e-mailov: MIME (Multipurpose Internet Mail Extensions) používa Base64 na kódovanie binárnych príloh v e-maile.

  2. Dátové URL: Vkladanie malých obrázkov, písiem alebo iných zdrojov priamo do HTML, CSS alebo JavaScriptu pomocou schémy URL data:.

  3. Komunikácie API: Bezpečné prenášanie binárnych údajov v JSON payloadoch alebo iných textových formátoch API.

  4. Ukladanie binárnych údajov v textových formátoch: Keď je potrebné uložiť binárne údaje v XML, JSON alebo iných textových formátoch.

  5. Systémy autentifikácie: Základná autentifikácia v HTTP používa Base64 kódovanie (aj keď to nie je pre bezpečnosť, len pre kódovanie).

  6. Kryptografia: Ako súčasť rôznych kryptografických protokolov a systémov, často na kódovanie kľúčov alebo certifikátov.

  7. Hodnoty cookies: Kódovanie zložitých dátových štruktúr na uloženie v cookies.

Alternatívy

Aj keď je Base64 široko používané, existujú alternatívy, ktoré môžu byť vhodnejšie v určitých situáciách:

  1. URL-safe Base64: Variant, ktorý používa "-" a "_" namiesto "+" a "/" na vyhnutie sa problémom s URL kódovaním. Užitečné pre dáta, ktoré budú zahrnuté v URL.

  2. Base32: Používa 32-znakovú sadu, čo vedie k dlhšiemu výstupu, ale s lepšou čitateľnosťou pre ľudí a bez ohľadu na veľkosť písmen.

  3. Hex kódovanie: Jednoduchá konverzia na hexadecimálne, ktorá je menej efektívna (zdvojnásobuje veľkosť), ale veľmi jednoduchá a široko podporovaná.

  4. Binárny prenos: Pre veľké súbory alebo keď je efektívnosť kľúčová, sú preferované prenosové protokoly ako HTTP s vhodnými hlavičkami Content-Type.

  5. Komprimácia + Base64: Pre veľké textové dáta môže kompresia pred kódovaním zmierniť nárast veľkosti.

  6. JSON/XML serializácia: Pre štruktúrované dáta môže byť použitie natívnej JSON alebo XML serializácie vhodnejšie ako Base64 kódovanie.

História

Kódovanie Base64 má svoje korene v raných počítačových a telekomunikačných systémoch, kde bolo potrebné prenášať binárne dáta cez kanály navrhnuté pre text.

Formálna špecifikácia Base64 bola prvýkrát publikovaná v roku 1987 ako súčasť RFC 989, ktorá definovala Privacy Enhanced Mail (PEM). To bolo neskôr aktualizované v RFC 1421 (1993) a RFC 2045 (1996, ako súčasť MIME).

Termín "Base64" pochádza z toho, že kódovanie používa 64 rôznych ASCII znakov na reprezentáciu binárnych údajov. Tento výber 64 znakov bol zámerný, pretože 64 je mocninou 2 (2^6), čo robí konverziu medzi binárnymi a Base64 efektívnou.

V priebehu času sa objavilo niekoľko variantov Base64:

  • Štandardné Base64: Ako je definované v RFC 4648, používa A-Z, a-z, 0-9, +, / a = na padding
  • URL-safe Base64: Používa - a _ namiesto + a / na vyhnutie sa problémom s URL kódovaním
  • Bezpečné názvy súborov Base64: Podobné URL-safe, navrhnuté na použitie v názvoch súborov
  • Modifikované Base64 pre IMAP: Používané v protokole IMAP s inou sadou špeciálnych znakov

Napriek tomu, že má viac ako tri desaťročia, Base64 zostáva základným nástrojom v modernej informatike, najmä s nástupom webových aplikácií a API, ktoré sa silne spoliehajú na textové formáty dát ako JSON.

Kódové príklady

Tu sú príklady kódovania a dekódovania Base64 v rôznych programovacích jazykoch:

1// JavaScript Base64 Kódovanie/Dekódovanie
2function encodeToBase64(text) {
3  return btoa(text);
4}
5
6function decodeFromBase64(base64String) {
7  try {
8    return atob(base64String);
9  } catch (e) {
10    throw new Error("Neplatný Base64 reťazec");
11  }
12}
13
14// Príklad použitia
15const originalText = "Hello, World!";
16const encoded = encodeToBase64(originalText);
17console.log("Zakódované:", encoded);  // SGVsbG8sIFdvcmxkIQ==
18
19try {
20  const decoded = decodeFromBase64(encoded);
21  console.log("Dekódované:", decoded);  // Hello, World!
22} catch (error) {
23  console.error(error.message);
24}
25

Okrajové prípady a úvahy

Pri práci s kódovaním a dekódovaním Base64 si dávajte pozor na tieto dôležité úvahy:

  1. Unicode a ne-ASCII znaky: Pri kódovaní textu s ne-ASCII znakmi zabezpečte správne kódovanie znakov (zvyčajne UTF-8) pred kódovaním Base64.

  2. Padding: Štandardné Base64 používa padding s "=" znakmi na zabezpečenie, aby dĺžka výstupu bola násobkom 4. Niektoré implementácie umožňujú vynechanie paddingu, čo môže spôsobiť problémy s kompatibilitou.

  3. Riadkové zlomy: Tradičné implementácie Base64 vkladajú riadkové zlomy (typicky každých 76 znakov) pre čitateľnosť, ale moderné aplikácie často tieto vynechávajú.

  4. URL-Safe Base64: Štandardné Base64 používa "+" a "/" znaky, ktoré majú špeciálne významy v URL. Pre kontexty URL používajte URL-safe Base64, ktoré tieto nahrádza "-" a "_".

  5. Biele znaky: Pri dekódovaní niektoré implementácie sú zhovievavé a ignorujú biele znaky, zatiaľ čo iné vyžadujú presný vstup.

  6. Zvýšenie veľkosti: Kódovanie Base64 zvyšuje veľkosť údajov približne o 33% (4 výstupné bajty pre každé 3 vstupné bajty).

  7. Výkon: Kódovanie/dekódovanie Base64 môže byť výpočtovo náročné pre veľmi veľké dáta. Zvážte prístup streamovania pre veľké súbory.

Odkazy

  1. RFC 4648 - Kódovania Base16, Base32 a Base64
  2. RFC 2045 - MIME Časť Prvá: Formát Internetových Správ
  3. MDN Web Docs: Kódovanie a dekódovanie Base64
  4. Base64 - Wikipedia
  5. MIME - Wikipedia