Base64 kodavimas ir dekodavimas
Nemokamas Base64 kodavimas ir dekodavimas su pilna UTF-8 parama ir base64url parinktimi. Veikia tavo naršyklėje, nieko neįkeliama.
Kaip naudotis Base64 kodavimo ir dekodavimo įrankiu
- Pasirink, ar nori tekstą koduoti į Base64, ar Base64 dekoduoti atgal į tekstą.
- Įvesk arba įklijuok tekstą į laukelį. Palaikomos raidės su diakritikais, ne lotyniški rašmenys ir jaustukai.
- Jei rezultatas bus naudojamas URL adrese, failo pavadinime ar JSON Web Token, įjunk parinktį Saugus URL (base64url) ir gausi base64url variantą.
- Perskaityk rezultatą ir jį nukopijuok. Jei dekoduoji, o įvestis nėra tinkamas Base64, vietoj nesąmonių pamatysi klaidos pranešimą.
Kas yra Base64?
Base64 – tai būdas pavaizduoti bet kokius baitus naudojant vos 64 spausdinamus ASCII simbolius: didžiąsias raides A–Z, mažąsias a–z, skaitmenis 0–9 ir du ženklus + bei /. Simbolis = naudojamas kaip užpildas pabaigoje. Jis atsirado todėl, kad daug sistemų sukurta perduoti tekstą, o ne neapdorotus dvejetainius duomenis. El. laiškų turinys, HTTP antraštės, XML ir JSON dokumentai bei duomenų URL tikisi simbolių, kurie išliks nepakitę kopijuojant, įrašant į žurnalus ir perduodant.
Algoritmas dirba su trijų baitų (24 bitų) grupėmis ir suskaido jas į keturias 6 bitų reikšmes, kurių kiekviena atitinka vieną iš 64 simbolių. Todėl Base64 rezultatas visada maždaug 33 % didesnis už įvestį: kiekvieni 3 baitai tampa 4 simboliais. Kai įvesties ilgis nesidalija iš trijų, pridedami vienas ar du ženklai =, kad rezultato ilgis dalytųsi iš keturių. Pavyzdžiui, žodis Hi užkoduojamas kaip SGk=, o Hello – kaip SGVsbG8=.
Tekstas, baitai ir UTF-8
Base64 koduoja baitus, o ne simbolius, todėl tekstą pirmiausia reikia paversti baitais. Šis įrankis naudoja UTF-8 – kodavimą, kurį naudoja beveik visi šiuolaikiniai tinklalapiai ir API. Todėl café virsta Y2Fmw6k=, o jaustukas, pavyzdžiui, 👍 (UTF-8 jis užima keturis baitus), užkoduojamas teisingai ir dekoduojamas atgal į tą patį jaustuką. Daugelis greitų scenarijų, naudojančių senąją naršyklės funkciją btoa(), neveikia su viskuo, kas nepatenka į Latin-1; šis įrankis tokio apribojimo neturi.
Standartinis Base64 ir base64url
Standartinis Base64 naudoja + ir /, kurie URL adresuose ir failų keliuose turi ypatingą reikšmę. Saugus URL variantas, vadinamas base64url, pakeičia + į -, o / į _ ir paprastai atmeta = užpildą. Šis formatas naudojamas JSON Web Token (JWT), daugelyje OAuth parametrų ir trumpinamų nuorodų paslaugose. Įjunk parinktį Saugus URL (base64url), kai reikia šio formato, ir palik išjungtą el. laiškų priedams, duomenų URL ar konfigūracijos failams, kuriems reikia standartinio Base64.
Base64 nėra šifravimas
Tai vienas dažniausių nesusipratimų. Base64 yra kodavimas: jis neturi rakto ar paslapties, ir bet kas gali jį akimirksniu atkurti. Slaptažodžio, API rakto ar asmens duomenų užkodavimas Base64 jų jokiu būdu neapsaugo. Pavyzdžiui, HTTP Basic autentifikacija siunčia username:password Base64 formatu, todėl ją galima naudoti tik per HTTPS. Jei reikia konfidencialumo, naudok tikrą šifravimą (pavyzdžiui, AES) arba slaptažodžio maišą (pavyzdžiui, Argon2 ar bcrypt), o ne Base64.
Privatumas
Visas kodavimas ir dekodavimas vyksta vietoje, tavo naršyklėje, naudojant JavaScript. Įvestas tekstas niekada nesiunčiamas į serverį, nesaugomas ir neįrašomas į žurnalus, todėl saugiai gali tikrinti prieigos raktus ar konfigūracijos reikšmes. Šis įrankis dirba tik su tekstu ir failų neįkelia.
Dažnai užduodami klausimai
Kodėl dekoduotas tekstas atrodo kaip atsitiktiniai simboliai?
Greičiausiai Base64 eilutė vaizduoja dvejetainius duomenis, pavyzdžiui, nuotrauką, suglaudintą failą ar užšifruotą turinį, o ne tekstą. Dekoduojant gaunami tinkami baitai, bet jie nėra prasmingas UTF-8 tekstas. Taip gali nutikti ir tada, jei pradinis tekstas buvo užkoduotas ne UTF-8 simbolių rinkiniu.
Kodėl įrankis sako, kad mano Base64 netinkamas?
Tinkamame Base64 yra tik 64 leidžiami simboliai ir nebūtinas = užpildas, o jo ilgis turi atitikti 4 simbolių grupavimą. Dažniausios priežastys: atsitiktinai nukopijuoti pašaliniai simboliai, nukirpta eilutė arba base64url eilutė (su - ir _), dekoduojama neįjungus parinkties Saugus URL (base64url).
Ar galiu užkoduoti paveikslėlius ar kitus failus?
Ne. Šis įrankis skirtas tik tekstui. Norint įterpti paveikslėlį į HTML ar CSS, reikėtų įrankio, kuris nuskaito failo neapdorotus baitus ir sukuria duomenų URL.
Ar Base64 tinka slaptažodžiams saugoti?
Ne. Base64 bet kas gali dekoduoti per sekundės dalį. Slaptažodžius reikia saugoti naudojant specialų lėtą maišos algoritmą, pavyzdžiui, Argon2, scrypt ar bcrypt.
Kuo skiriasi Base64 su užpildu ir be jo?
Užpildas = tik padaro rezultato ilgį dalų iš keturių; jis neneša jokios informacijos. Dauguma dekoderių duomenis gali atkurti ir be jo. base64url dažnai praleidžia užpildą, nes = URL adrese pats yra rezervuotas simbolis.
Susiję įrankiai
- URL kodavimas ir dekodavimas Nemokamas URL koduotuvas ir dekoderis. Užkoduok užklausos parametrus ar visus URL, dekoduok %XX sekas ir apdorok + kaip tarpą. Veikia tavo naršyklėje.
- JSON formatuotojas ir tikrintuvas Nemokamas JSON formatuotojas ir tikrintuvas, kuris naršyklėje sutvarko, minimizuoja ir tikrina JSON, o sintaksės klaidas nurodo su eilute ir stulpeliu.
- UUID generatorius Nemokamas UUID generatorius v4 ir v7 versijoms. Sukurk iki 1000 iškart, didžiosiomis raidėmis ar be brūkšnelių, tada nukopijuok arba atsisiųsk kaip .txt.