Base64 Koduotuvas / Dekoduotuvas Online

0 chars
0 chars

Ar reikia konvertuoti skaitomą tekstą į Base64 formatą, kad jį būtų galima naudoti HTTP antraštėse, ar, atvirkščiai, iššifruoti API žetono turinį? Mūsų Base64 teksto koduotojas ir dekoduotojas yra specializuotas įrankis, skirtas dirbti su tekstinėmis eilutėmis, kuris gali susidoroti su sudėtingomis užduotimis, tokiomis kaip diakritiniai ženklai ar specialieji simboliai.

Dirbate su paveikslėliais?
Jei jūsų kodas prasideda data:image/png... arba norite konvertuoti failą į tekstą, šis įrankis parodys tik beprasmiškus simbolius. Naudokite mūsų specializuotą įrankį, skirtą konvertuoti į paveikslėlį.

Kaip veikia Base64 formatas?

Daugelis žmonių kasdien naudoja Base64, tačiau nedaugelis žino, kaip jis veikia “po variklio gaubtu”. Tai ne magija, o paprasta bitų matematika.

Įprastas tekstas kompiuteryje saugomas po 8 bitus (1 baitas). Tačiau Base64 naudoja 64 simbolių “abėcėlę” (A-Z, a-z, 0-9, +, /). Kadangi 2^6 = 64, vienas Base64 simbolis atitinka lygiai 6 bitus informacijos.

Konvertavimo procesas (Algoritmas):

  1. Paimami trys jūsų teksto simboliai (3 × 8 bitai = 24 bitai).
  2. Šie 24 bitai padalijami į keturias 6 bitų grupes.
  3. Kiekvienai grupei priskiriamas simbolis iš Base64 lentelės.

Pasekmė: Kadangi iš 3 simbolių gauname 4 simbolius, galutinė Base64 eilutė visada yra maždaug 33 % ilgesnė už pradinį tekstą.

Simbolių rinkinio problema: Kodėl įprasti Base64 keitikliai gadina lietuvių kalbos simbolius?

Jei kada nors bandėte užkoduoti žodį “Kąsnis” naršyklės konsolėje naudodami funkciją btoa('Kąsnis'), tikriausiai gavote klaidą: String contains characters outside of the Latin1 range.

Base64 iš pradžių buvo sukurtas 7 bitų ASCII simboliams. Tačiau lietuvių kalbos, jaustukų ir kitų specialiųjų simbolių (UTF-8) atmintyje užima daugiau baitų (daugiabaičiai simboliai).

  • Raidė a = 1 baitas.
  • Raidė ę = 2 baitai.
  • Jaustukas 🚀 = 4 baitai.

Mūsų įrankis išsprendžia šią problemą. Prieš patį kodavimą į Base64, tekstą teisingai konvertuojame į UTF-8 baitų seką. Dėl to galite saugiai koduoti JSON objektus, lietuviškus tekstus ir šiuolaikinius simbolius be duomenų sugadinimo rizikos.

Kur naudojamas Base64 teksto kodavimas?

Nors Base64 paveikslėliai daugiausia naudojami įterpiant į CSS/HTML, tekstinis Base64 turi visiškai kitokią paskirtį galinio serverio sistemose:

1. HTTP Basic autentifikavimas

Kai prisijungiate prie API, antraštė dažnai atrodo taip: Authorization: Basic dXppdmF0ZWw6aGVzbG8= Už šio kodo slypi tiesiog sujungtas vartotojo vardas ir slaptažodis formatu vartotojas:slaptažodis. Mūsų įrankis leidžia lengvai generuoti arba tikrinti šias antraštes.

2. JSON Web žetonai (JWT)

Šiuolaikinės žiniatinklio programos prisijungimui naudoja vadinamuosius JWT. Toks žetonas atrodo kaip trys ilgos eilutės, atskirtos tašku. Duomenų dalis (Payload) yra įprastas JSON objektas, užkoduotas Base64.

  • Patarimas: Pabandykite čia įterpti vidurinę savo JWT žetono dalį ir ją dekoduoti. Pamatysite, kokius duomenis apie jus registruoja programa (pvz., vartotojo ID, galiojimo laikas).

3. Konfigūracijos failai (Kubernetes Secrets)

Platformos, tokios kaip Kubernetes, saugo slaptus duomenis (Secrets) konfigūracijos YAML failuose Base64 formatu. Tai nėra šifravimas, o būdas, kaip į tekstinį failą įrašyti dvejetainius duomenis arba tekstą su problematiškais simboliais (naujos eilutės, kabutės).

Kas yra “URL saugus Base64 kodavimas” ir kodėl tai svarbu?

Standartinėje Base64 abėcėlėje yra simboliai + (pliusas) ir / (pasvirasis brūkšnys). Abu šie simboliai URL adresuose turi specialią reikšmę:

  • / atskiria katalogus.
  • + dažnai interpretuojamas kaip tarpas.

Jei siųstumėte standartinį Base64 URL parametre (pvz., site.com?token=ab/cd+ef), serveris galėtų neteisingai perskaityti duomenis.

Sprendimas (URL saugus režimas): Mūsų jungiklis aktyvuoja Base64URL variantą (pagal RFC 4648), kuris atlieka šiuos pakeitimus:

  • + keičiamas į - (brūkšnelis).
  • / keičiamas į _ (pabraukimo brūkšnys).
  • Gale pašalinami = (užpildymo) simboliai, kurie URL nėra reikalingi.

Mitas: Base64 nėra šifravimas!

Svarbu suprasti esminį skirtumą, kurį dažnai painioja pradedantieji:

  1. Kodavimas (Encoding - Base64): Skirtas duomenų perdavimui. Tai tarsi daikto supakavimas į lagaminą, kad jis nesulūžtų kelionės metu. Kas ras lagaminą, gali jį atidaryti (dekoduoti) ir pamatyti turinį. Tai nėra saugu slaptiems duomenims.
  2. Šifravimas (Encryption - AES, RSA): Užrakina duomenis raktu. Be rakto prie turinio neprisijungsite.
  3. Maišymas (Hashing - SHA, MD5): Vieno krypties procesas (pvz., slaptažodžių saugojimui). Iš rezultato negalima atkurti originalaus teksto.

Jei reikia siųsti slaptažodį ar konfidencialius duomenis, vien tik Base64 nepakanka. Turite naudoti HTTPS (SSL/TLS), kuris užšifruoja perdavimą.


Dažnai užduodami klausimai (DUK)

Ką reiškia "=" simboliai eilutės gale? Tai vadinamasis "užpildymas" (padding). Kadangi Base64 koduoja duomenis grupėmis po 3 simbolius, gali atsitikti, kad originalaus teksto ilgis nėra dalijamas iš trijų. Simboliai `=` pridedami pabaigoje, kad dekoduotojas žinotų, kiek bitų reikia ignoruoti pabaigoje.
Kodėl dekoduotas tekstas rodomas kaip "išmėtyta arbata" (nesuprantami simboliai)? Panašu, kad bandote dekoduoti duomenis, kurie nėra tekstas. Jei Base64 eilutė atspindi suglaudintą failą (ZIP), paveikslėlį ar užšifruotus duomenis, konvertavimas į tekstą (UTF-8) neturi prasmės. Pabandykite išsiaiškinti duomenų kilmę.
Ar įrankis veikia neprisijungus prie interneto? Taip. Visa konvertavimo logika parašyta JavaScript ir veikia tiesiogiai jūsų naršyklėje. Kai puslapis įkeliamas, galite atsijungti nuo interneto ir įrankis vis tiek veiks. Jūsų duomenys niekur nesiunčiami.