Base64 koduotojas / dekoduotojas
Užkoduokite ir dekoduokite tekstą ar failus į Base64 ir atgal — su URL saugia išvestimi, failų įkėlimu ir dydžio statistika.
Base64 koduotuvas / dekoderis
TuščiaPavyzdžiai
Kaip tai veikia
A–Z, a–z, 0–9, +, /) eilute plius = užpildymui. Kiekvieni 3 įvesties baitai virsta 4 išvesties simboliais, todėl užkoduota išvestis visada yra maždaug 4/3 karto didesnė (apie 33 % daugiau). Tai reikalinga, nes daug kanalų — el. laiškų turinys, HTTP antraštės, JSON eilutės, URL'ai, XML atributai — saugiai perduoda tik tekstą, o ne bet kokius baitus.Dekodavimas — atvirkštinis veiksmas. Keturi Base64 simboliai sudaro tris baitus iš savo 6 bitų reikšmių. Jei įvesties ilgis nėra 4 kartotinis, užpildymas
= rodo, kiek baitų yra paskutinėje grupėje (0, 1 ar 2). Šiuolaikiniai dekoderiai priima įvestį su užpildymu ar be jo, bet griežti — atmeta.URL saugi abėcėlė (RFC 4648 §5) pakeičia
+ ir / į - ir _, kad eilutė galėtų gyvuoti URL kelyje ar užklausoje be procentinio kodavimo. JWT'ai, OAuth žetonai ir data: URL'ai paveikslėliams CSS/HTML remiasi Base64. MIME naudoja klasikinę abėcėlę, bet laužo eilutes kas 76 simbolius, kad tilptų į el. laiškų ilgio ribas.Šis įrankis užkoduoja visą Unicode ruožą — pirma tekstą paverčia UTF-8 baitais, paskui taiko Base64. Kai įkeli ar numeti failą, jis skaito baitus tiesiogiai — paveikslėliai, PDF'ai, zip failai išsaugomi be sugadinimų. Dekoduojant aptinkami dažni dvejetainiai parašai (PNG, JPG, PDF, GIF) ir parodoma peržiūra, kai rezultatas matomas.
Patarimai ir geroji praktika
+ / / į - / _.= užpildymą tik tada, kai kita pusė jo nereikalauja (JWT — reikalauja, dauguma MIME įrankių — ne).%3D vietoj =) arba neatitinkančios abėcėlės (URL saugi vs. standartinė).Dažniausiai užduodami klausimai
Kam naudojamas Base64?
Dvejetainiams duomenims įterpti į tik teksto kanalus: el. laiškų priedus (MIME), įterptuosius paveikslėlius HTML/CSS per data: URL'us, JSON Web Token, OAuth būsenos parametrus, API raktus, SSH viešuosius raktus, TLS sertifikatus (PEM), serializuotą protobuf'ą interneto formose. Tai mažiausias bendras vardiklis baitams perduoti kanalu, kuris laukia teksto.
Ar Base64 yra šifravimas?
Ne. Base64 — tai viešas, atsukamas kodavimas; kiekvienas, turintis išvestį, gali atkurti įvestį. Jis nesuteikia jokio slaptumo. Jei reikia apsaugoti duomenis, pirma juos užšifruokite, o tada užkoduokite šifrotekstą Base64 perdavimui.
Kodėl užkoduotos išvesties gale yra „="?
Base64 apdoroja įvestį 3 baitų grupėmis ir išleidžia 4 simbolių grupes. Kai paskutinė grupė turi tik 1 ar 2 baitus, išvestis užpildoma 1 ar 2 = simboliais, kad bendras ilgis liktų 4 kartotinis. Vieni dekoderiai šio užpildymo reikalauja, daugelis (pvz., JWT) — praleidžia.
Kuo skiriasi standartinis ir URL saugus Base64?
Standartinis Base64 (RFC 4648 §4) naudoja A-Z a-z 0-9 + /. URL saugus Base64 (§5) pakeičia paskutinius du į - ir _, nes + ir / URL'uose ir failų pavadinimuose turi rezervuotų reikšmių. Abėcėlės yra nesuderinamos — dekoduoti reikia ta pačia, kuria buvo koduota.
Kodėl mano dekoduotas tekstas atrodo iškraipytas?
Dažniausiai — koduočių neatitikimas. Šis įrankis, dekoduodamas į tekstą, laiko UTF-8; jei baitai buvo užkoduoti iš Latin-1 (Windows-1252), Shift_JIS ar kitos koduotės, jie yra galiojantys, bet interpretuoti juos kaip UTF-8 duoda mojibake. Perjunkite Dekoduoti kaip į „Latin-1" arba „Šešioliktainiai baitai", kad pamatytumėte neapdorotus baitus.
Koks didžiausias galimas kodavimo dydis?
Viskas vyksta Jūsų naršyklėje — jokio įkėlimo nevyksta. Praktinės ribos priklauso nuo įrenginio atminties ir kiek teksto gali pavaizduoti <textarea>. Šimtai KB — ne problema; keli MB veikia, bet išvesties laukas gali sulėtėti. Labai dideliems failams naudokite komandinės eilutės įrankį (base64 macOS/Linux sistemose, certutil — Windows).
Ar šis įrankis siunčia mano duomenis į serverį?
Ne. Visas kodavimas, dekodavimas, failų skaitymas, SHA-256 maiša ir MIME aptikimas vyksta lokaliai naršyklėje, naudojant gimtąsias btoa / atob ir SubtleCrypto sąsajas. Dalinamos nuorodos funkcija įkelia turinį į URL hash'ą, kuris taip pat niekada nesiunčiamas į serverį.