CodeKitHub
Kodavimo įrankiai

Base64 kodavimas / dekodavimas internetu

Paskutinį kartą atnaujinta:

Base64 kiekvienus 3 duomenų baitus paverčia 4 ASCII simboliais, todėl užkoduotas rezultatas yra maždaug 33% didesnis nei originali įvestis. Konvertuokite tekstą į Base64 arba dekoduokite Base64 eilutę atgal į skaitomą tekstą. Šis įrankis yra saugus su UTF-8, todėl teisingai apdoroja emoji, kinų kalbos simbolius ir kitus ne ASCII simbolius, dėl kurių sugenda paprasti Base64 įrankiai. Viskas vyksta vietoje, jūsų naršyklėje.

Kas yra šis įrankis?

Base64 yra kodavimo schema, konvertuojanti dvejetainius ar teksto duomenis į 64 saugių ASCII simbolių rinkinį (A–Z, a–z, 0–9, + ir /). Ji naudojama visur programinėje įrangoje: įterpiant paveikslėlius į HTML/CSS, HTTP Basic autentifikavimo antraštėse, el. laiškų prieduose (MIME), JSON žiniatinklio žetonuose (JWT) bei API duomenyse, kurie turi išlikti nepažeisti tik teksto kanaluose.

Svarbu: Base64 yra kodavimas, o ne šifravimas. Bet kas gali jį dekoduoti. Jo paskirtis — padaryti duomenis saugius perduoti per sistemas, kurios supranta tik tekstą, o ne juos nuslėpti.

Base64 formaliai apibrėžtas RFC 4648, kuriame taip pat apibrėžiamas URL saugus variantas, naudojamas JWT ir žiniatinklio API: jame + pakeičiamas į -, o / į _, kad užkoduota eilutė galėtų keliauti URL viduje be procentinio kodavimo.

Kodėl jį naudoti?

  • Dekoduokite API žetonus, JWT segmentus ir autentifikavimo antraštes, kad pamatytumėte, kas juose yra.
  • Koduokite tekstą duomenų URI, konfigūracijos failams ar HTTP antraštėms.
  • Saugu su UTF-8: emoji ir ne lotyniški simboliai koduojami bei dekoduojami teisingai.
  • 100% privatu — konvertavimas vyksta jūsų naršyklėje, niekas neįkeliama.
  • Nemokama, be prisijungimo, be dydžio apribojimų.

Kaip naudoti

  1. Įrašykite arba įklijuokite savo turinį į įvesties lauką.
  2. Spustelėkite "Koduoti", kad konvertuotumėte tekstą į Base64, arba "Dekoduoti", kad konvertuotumėte Base64 atgal į tekstą.
  3. Jei dekodavimas nepavyksta, įvestis nėra teisingas Base64 — patikrinkite, ar netrūksta simbolių, ar nėra papildomų tarpų.
  4. Spustelėkite "Kopijuoti", kad nukopijuotumėte rezultatą.

Pavyzdys

Įvestis

Hello, CodeKitHub! 你好 👋

Išvestis

SGVsbG8sIENvZGVLaXRIdWIhIOS9oOWlvSDwn5GL

Atkreipkite dėmesį, kaip kinų kalbos simboliai ir emoji išlieka nepakitę po konvertavimo pirmyn ir atgal — tai ir yra ta saugumo su UTF-8 dalis.

Praktiniai patarimai

  • JWT žetonai yra trys Base64 segmentai, sujungti taškais — dekoduokite pirmuosius du (antraštę ir naudingąją apkrovą) atskirai, kad juos perskaitytumėte; trečiasis yra dvejetainis parašas ir atrodys kaip triukšmas.
  • Jei dekodavimas nepavyksta JWT segmente, tai base64url kodavimas: pirmiausia pakeiskite - į + ir _ į / (standartiniai įrankiai tikisi +/ abėcėlės).
  • Tarpai ir eilučių lūžiai Base64 eilutėje dažniausiai yra nekenksmingi likučiai iš el. laiškų ar žurnalų, tačiau trūkstamas galinis = užpildymas dažnai nėra — patikrinkite ilgį prieš darant prielaidą, kad duomenys sugadinti.
  • Base64 padidina duomenis maždaug 33%. Tinka mažoms apkrovoms; paveikslėliams virš kelių KB tikras failas beveik visada geresnis pasirinkimas nei duomenų URI.

Realūs naudojimo scenarijai

Trys atvejai, dėl kurių žmonės čia kasdien lankosi: perskaityti, kas yra Authorization antraštėje ar JWT viduje, dekoduoti webhook/API duomenų lauką, atkeliavusį suvyniotą į Base64 (dažnai JSON — suformatuokite jį po dekodavimo), ir rankiniu būdu sukurti duomenų URI ar Basic-Auth eilutę derinant klaidas.

Dvejetainiams duomenims (paveikslėliams, failams) atminkite, ką gausite dekoduodami kaip tekstą — nesuprantamus simbolius. Duomenys gali būti visiškai teisingi, tiesiog tai nėra tekstas. Dvejetainių duomenų kodavimas/dekodavimas priklauso kodui; šis įrankis optimizuotas teksto atvejams.

Kaip diagnozuoti dekodavimo klaidą

Base64 dekodavimo klaidos beveik visada kyla dėl vienos iš trijų priežasčių, pagal dažnumą: įvestis iš tikrųjų buvo base64url (naudoja - ir _ vietoj standartinių + ir /, dažna JWT ir URL saugiuose kontekstuose) ir prieš standartinį dekodavimą reikia grąžinti tuos simbolius atgal; eilutė kažkur pakeliui buvo sutrumpinta (kopijavimas ir įklijavimas, praleidus kelis paskutinius simbolius, arba nutrūkusi žurnalo eilutė), tai galima nustatyti, nes teisingos Base64 eilutės ilgis, įskaičiavus užpildymą, visada dalinasi iš 4; arba kopijuojant buvo įtraukti pašaliniai simboliai (papildomas tarpas, atsitiktinė nauja eilutė, netyčia pasidubliavęs simbolis), todėl visada saugiau įklijuoti tiesiai iš pirminio šaltinio, o ne perrašyti ranka.

JSON formatuoklė · URL kodavimo / dekodavimo įrankis · JWT dekoderis

Dažniausiai užduodami klausimai

Ar Base64 yra šifravimas?

Ne. Base64 yra grįžtamasis kodavimas, kurį bet kas gali dekoduoti — jis nesuteikia jokio saugumo. Jei reikia apsaugoti duomenis, naudokite tikrą šifravimą (pvz., AES); Base64 skirtas tik padaryti duomenis saugius perduoti kaip tekstą.

Kodėl mano dekoduotas rezultatas atrodo kaip nesąmonė?

Arba įvestis iš tikrųjų nėra Base64, arba ji buvo sutrumpinta, arba originalūs duomenys buvo dvejetainiai (pvz., paveikslėlis), o ne tekstas. Dvejetainiai duomenys nebus rodomi kaip skaitomi simboliai.

Kas yra = ženklai gale?

Užpildymas. Base64 veikia 3 įvesties baitų blokais → 4 išvesties simboliai. Kai įvesties ilgis nesidalina iš 3, vienas ar du = simboliai užpildo paskutinį bloką.

Ar šis įrankis veikia su emoji ir kinų kalbos simboliais?

Taip. Jis pirmiausia koduoja tekstą kaip UTF-8 baitus, o tai yra standartinis metodas. Paprasti įrankiai, tiesiogiai naudojantys btoa(), sugenda su bet kokiu simboliu už Latin-1 ribų — šis ne.

Ar mano duomenys kur nors įkeliami?

Ne. Kodavimas ir dekodavimas vyksta visiškai jūsų naršyklėje naudojant JavaScript. Jūsų duomenys niekada nepalieka jūsų įrenginio.

Susiję įrankiai