Tech Help

Base64 nie je šifrovanie: čo skutočne robí

Base64 je kódovanie, nie šifrovanie. Prečo neschováva heslá, prečo rastie veľkosť a ako ho dekódovať.

Krátka odpoveď

Base64 je kódovanie, nie šifrovanie. Premieňa binárne dáta na textovú podobu, ktorú textové systémy vedia uložiť alebo odoslať.

Kto má text Base64, zvyčajne ho vie dekódovať. Heslo ani tajný kľúč nie sú potrebné.

Nepoužívajte Base64 na ochranu hesiel, kľúčov API, prístupových tokenov, súkromných správ ani iných tajomstiev. Je to nástroj reprezentácie, nie bezpečnostný mechanizmus.

Keď reťazec vyzerá zmätene, neznamená to, že je zašifrovaný. Base64 len mení, ako sa bajty zapisujú ako text.

Čo Base64 skutočne robí?

Base64 kóduje binárne dáta obmedzenou sadou ASCII: A–Z, a–z, 0–9, + a /. Výplň = sa môže objaviť, aby dĺžka výstupu ostala násobkom 4. Výplň nie je vždy—krátke vstupy môžu použiť jedno alebo dve = a niektoré formáty ju vynechajú.

Hello

Hello

Base64

SGVsbG8=

Dekódujte SGVsbG8= a znova dostanete Hello. Tá cesta tam a späť nepotrebuje kľúč.

  • Pôvodné dáta
  • Hello
  • Kódovať Base64
  • SGVsbG8=
  • Dekódovať Base64
  • Hello
Base64 je vratné dekódovaním. Kto má text, zvyčajne to zvládne.

Base64 versus šifrovanie: aký je rozdiel?

Base64 slúži reprezentácii a kompatibilite. Obsah neschováva. Šifrovanie slúži dôvernosti a používa kryptografický kľúčový materiál. Dekódovať Base64 nie je dešifrovať. Systémy s verejným kľúčom tiež používajú kľúče; hovorte «vhodný kryptografický kľúč», nie «jedno zdieľané tajomstvo pre každý druh šifrovania». Hashovanie je tretia myšlienka: výťah, nie vratné kódovanie.

  • Kódovanie
  • Bez tajného kľúča
  • Vratné pre kohokoľvek
  • Šifrovanie
  • Kryptografická ochrana
  • Na dešifrovanie treba správny kľúč
Kódovanie mení reprezentáciu. Šifrovanie chce udržať obsah dôverný.

Tri rôzne úlohy:

Metóda Hlavný účel Tajomstvo potrebné
Base64 Kódovať dáta ako text Nie
Šifrovanie Chrániť dôvernosť Áno / kľúčový materiál
Hashovanie Jednosmerný výťah Bez dešifrovania

Je Base64 bezpečné?

Base64 samo osebe nedáva dôvernosť. Text môže vyzerať nepriehľadne, ale to nie je bezpečnostná funkcia. Bežný dekóder obnoví bajty. To neznamená, že «Base64 je nebezpečné» ako technológia. Je to bežné kódovanie. Nie je to bezpečnostný mechanizmus. Bezpečnosť závisí od okolitého systému a kontrol.

Môžem schovať heslo alebo kľúč API do Base64?

Nie, nie ako ochranu. Zakódovať heslo, kľúč API, prístupový token alebo súkromné dáta ako Base64 ich nechráni. Kto získa zakódovaný reťazec, zvyčajne ho dekóduje. Použite skutočné uloženie tajomstiev a šifrovanie, keď na dôvernosti záleží.

Prečo sa Base64 používa, keď to nie je šifrovanie?

Systémy, ktoré čakajú text, často neunesú surové binárne dáta. Base64 slúži na reprezentáciu binárnych dát v textových formátoch, vloženie malých binárnych zdrojov, prenos bajtov len textovými kanálmi, stavbu Data URL, výskyt v niektorých e-mailových/MIME kontextoch a plnenie záťaží API, keď schéma žiada Base64. API ho nepoužívajú «kvôli bezpečnosti». Používajú ho kvôli kompatibilite.

Prečo Base64 zväčšuje dáta?

Štandardné Base64 s výplňou mapuje 3 vstupné bajty na 4 znaky. Dĺžka je 4 × ceil(n / 3), kde n je počet vstupných bajtov. Tri bajty sa stanú 4 znakmi; šesť 8. To je zhruba o 33 % väčšie—asi o tretinu—pri veľkej surovej záťaži. Malé vstupy môžu kvôli výplni vyzerať inak: jeden bajt sa stane QQ== (4 znaky). Úvodzovky JSON, predpona Data URL, kompresia alebo ďalšie transportné kódovanie môžu uloženú alebo odoslanú veľkosť ešte zmeniť. Base64 dáta nekomprimuje.

Čo je Base64URL?

Base64URL je varianta toho istého kódovania bezpečná pre URL a názvy súborov—nie šifrovanie. + sa stane -, / sa stane _ a výplň sa často vynechá. Kódovanie Base64 vie kódovať aj dekódovať štandardné Base64 aj Base64URL. Pravidlá výplne závisia od špecifikácie. Tento nástroj nie je dekóder JWT.

Vie Base64 kódovať obrázky a súbory?

Áno. Obrázky, PDF a iné binárne súbory sa dajú previesť na textovú reprezentáciu Base64. Base64 tie súbory nekomprimuje. Zakódovaný text je zvyčajne väčší než surové bajty.

Čo je Data URL s Base64?

Data URL môže v jednom reťazci spojiť typ média, značku kódovania a zakódované bajty:

data:image/png;base64,...

Je to pohodlné pre malé zdroje. Vložiť veľký súbor do Data URL nie je vždy dobrý nápad: reťazec rastie a stránky môžu spomaliť. Berte to ako kompromis, nie ako predvolené.

Kódovanie versus šifrovanie versus hashovanie

Kódovanie (vrátane Base64) slúži reprezentácii a je vratné bez tajomstva. Šifrovanie slúži dôvernosti a zahŕňa kryptografický kľúčový materiál. Hashovanie dáva výťah, ktorý je všeobecne navrhnutý ako jednosmerný. Dĺžka výstupu závisí od algoritmu—SHA-256 a SHA-512 nemajú rovnakú veľkosť. Vygenerovať hash SHA vie tie výťahy ukázať; nešifruje a nenahrádza Base64.

Časté chyby s Base64

Brať Base64 ako šifrovanie
Len mení, ako bajty vyzerajú ako text.

Ukladať tajomstvá ako holé Base64
Zakódovanú hodnotu dekóduje ktokoľvek, kto ju má.

Predpokladať, že Base64 komprimuje dáta
Nekomprimuje. Textová podoba je zvyčajne väčšia.

Zabudnúť na nárast veľkosti
Naplánujte zhruba o tretinu viac pri veľkých surových záťažiach.

Zameniť Base64 s Base64URL
Abecedy sa líšia. Dekóder môže zlú variantu odmietnuť.

Dekódovať so zlým kódovaním znakov
Base64 obnoví bajty. Text stále potrebuje zodpovedajúce kódovanie, zvyčajne UTF-8.

Predpokladať, že = je vždy
Výplň sa použije, keď treba. Niektoré reťazce ju nemajú.

Prečo môže text Unicode robiť problémy s Base64?

Base64 pracuje s bajtmi, nie so znakmi. Text musí najprv byť bajtmi—zvyčajne UTF-8. Kórejčina, japončina, arabčina a emoji ten krok potrebujú. Prehliadačové btoa() na reťazci Unicode môže zlyhať. Kódovanie Base64 kóduje bajty UTF-8, takže ten text prejde tam a späť. Keď dekódujete zlou znakovou sadou, Base64 môže byť platné a písmená predsa vyzerať zle.

Nie je zámok

Base64 nedáva dôvernosť. Kto má zakódovanú hodnotu, zvyčajne ju dekóduje. Nepovažujte zmätene vyzerajúci text za chránené tajomstvo.

Kódujte alebo dekódujte Base64 v prehliadači

NEXNARA Kódovanie Base64 prevádza text UTF-8 a súbory lokálne.

Môžete kódovať alebo dekódovať štandardné Base64 aj Base64URL, zmeniť súbor na surové Base64 alebo Data URL a vrátiť Base64 alebo Data URL na stiahnutie. Neplatný vstup sa odmietne namiesto pádu. Medzery sa ignorujú; chýbajúca výplň sa doplní.

Súbory nad 10 MB môžu kartu spomaliť. Súbory nad 32 MB sa v prehliadači nespracujú.

Samotné spracovanie Base64 prebieha vo vašom prehliadači. Text ani súbor sa pri tomto nástroji neposielajú na server NEXNARA. Reklamy a ďalšie funkcie webu stále používajú sieť; to je oddelené od spracovania.

Potrebujete kódovať alebo dekódovať Base64? Otvorte Kódovanie Base64 a vložte text alebo pustite súbor.

FAQ

Je Base64 šifrovanie?

Nie. Base64 je kódovanie. Mení reprezentáciu. Nechráni dôvernosť.

Je Base64 bezpečné?

Base64 nie je bezpečnostný mechanizmus. Je to bežné kódovanie. Kto má text, zvyčajne ho dekóduje. Bezpečnosť závisí od zvyšku systému.

Dá sa Base64 dekódovať bez hesla?

Áno. Stačí štandardný dekóder. Samotné Base64 nechce heslo ani tajný kľúč.

Prečo Base64 zväčšuje súbor?

Každé 3 bajty sa stanú 4 znakmi v štandardnom Base64 s výplňou (dĺžka 4 × ceil(n / 3)). To je zhruba o 33 % viac pri veľkej surovej záťaži. Výplň môže zmeniť pomer pri veľmi malých vstupoch.

Aký je rozdiel medzi Base64 a Base64URL?

Base64URL používa - a _ namiesto + a / a často vynechá výplň =. Obe sú kódovania. Kódovanie Base64 podporuje obe abecedy.

Vie Base64 kódovať obrázky a súbory?

Áno. Výsledok je text, nie menší súbor. Použite režim súboru v Kódovanie Base64 pre surové Base64 alebo Data URL. Súbor ostane v prehliadači.