Pereiti prie turinio

Base64 kodavimo ir dekodavimo įrankis - Nemokamas internetinis Base64 keitiklis

Nemokamas base64 kodavimo ir dekodavimo įrankis. Akimirksniu konvertuokite tekstą į Base64 arba dekuoduokite Base64 eilutes. Palaiko standartinį ir URL saugų kodavimą. Joks prisijungimas nereikalingas.

Base64 kodavimo/dekodavimo įrankis

Konvertuoti tekstą į ir iš Base64 kodavimo

Įkrovimo skaičiuotuvas...
📚

Dokumentacija

Kas yra Base64 kodavimas?

Base64 – tai būdas bet kokius duomenis, įskaitant dvejetainius duomenis, pavyzdžiui, vaizdus, paversti paprastu tekstu, sudarytu tik iš raidžių, skaitmenų ir kelių simbolių. Base64 kodavimo įrenginys paverčia duomenis į šią tekstinę formą. Base64 dekoderis paverčia juos atgal į pradinius duomenis. Programos naudoja Base64 dvejetainiams duomenims saugiai perduoti per sistemas, pavyzdžiui, el. paštą ar JSON, kuriose tikimasi paprasto teksto.

Base64 naudoja abėcėlę, kurią sudaro 64 simboliai:

  • Didžiosios raidės A–Z (26 simboliai)
  • Mažosios raidės a–z (26 simboliai)
  • Skaitmenys 0–9 (10 simbolių)
  • Du simboliai, paprastai + ir / (2 simboliai)

Kai kurios sistemos išvesties pabaigoje taip pat naudoja lygybės ženklą (=) kaip užpildą. Užpildas nėra 64 simbolių abėcėlės dalis; jis tik papildo ilgį.

Kodėl reikalingas Base64

Daugelis senesnių tekstinių protokolų, įskaitant el. paštą (SMTP) ir kai kurias HTTP dalis, buvo sukurti perduoti 7 bitų ASCII tekstą. Jie gali sugadinti neapdorotus dvejetainius baitus, pavyzdžiui, JPEG vaizdo baituose esančius duomenis. Base64 to išvengia kiekvieną baitą pateikdamas tik saugiais, spausdinamais simboliais. Todėl el. laiškų priedai, tinklalapiuose įterpti vaizdai ir dvejetainiai laukai JSON formatu dažnai pirmiausia perduodami per Base64.

Base64 nėra glaudinimas ir nėra šifravimas. Užkoduota išvestis visada yra didesnė už įvestį, o bet kas gali ją iškoduoti be slaptažodžio ar rakto.

Kaip naudoti šį įrankį

  1. Įveskite arba įklijuokite tekstą į įvesties lauką.
  2. Pasirinkite „Encode to Base64“, kad paverstumėte tekstą į Base64, arba „Decode from Base64“, kad paverstumėte Base64 eilutę atgal į tekstą.
  3. Įjunkite tiesioginį perskaičiavimą, kad rašant išvestis būtų automatiškai atnaujinama.
  4. Nukopijuokite rezultatą naudodami kopijavimo mygtuką.

Įrankis skaito ir rašo standartinį unikodo tekstą, todėl kirčiuotos raidės, simboliai ir jaustukai tinkamai užkoduojami ir iškoduojami, ne tik paprastos angliškos raidės.

Kaip veikia Base64 kodavimas

Base64 kiekvienus 3 įvesties baitus (24 bitus) paverčia į 4 išvesties simbolius (kiekvienas jų turi 6 bitus), nes 24 padalijus iš 6 gauname 4.

  1. Paimkite įvesties baitus ir užrašykite juos dvejetainiu pavidalu.
  2. Sugrupuokite bitus į 24 bitų grupes (3 baitus).
  3. Kiekvieną 24 bitų grupę padalykite į keturias 6 bitų dalis.
  4. Raskite kiekvieną 6 bitų skaičių (nuo 0 iki 63) Base64 abėcėlėje ir užrašykite atitinkamą simbolį.

Jei įvesties ilgis nėra 3 kartotinis, paskutinė grupė būna trumpesnė. Koduotuvas ją papildo nuliniais bitais, tada prie išvesties prideda = simbolius, kad rezultatas vis tiek būtų pateikiamas grupėmis po 4:

  • Vienas likęs baitas sudaro 2 Base64 simbolius ir ==.
  • Du likę baitai sudaro 3 Base64 simbolius ir vieną =.

Base64 kodavimo pavyzdys

Žodžio „Hello“ kodavimas:

  1. ASCII reikšmės: 72, 101, 108, 108, 111
  2. Dvejetainis pavidalas: 01001000 01100101 01101100 01101100 01101111
  3. Pirmieji 3 baitai (24 bitai) padalijami į keturias 6 bitų grupes: 010010 000110 010101 101100. Tai yra skaičiai 18, 6, 21, 44 → simboliai S, G, V, s.
  4. Likę 2 baitai (16 bitų) padalijami į tris 6 bitų grupes, o gale pridedami 2 nuliniai bitai: 011011 000110 111100. Tai yra skaičiai 27, 6, 60 → simboliai b, G, 8.
  5. Kadangi liko 2 baitai, pabaigoje pridedamas vienas =.
  6. Rezultatas: SGVsbG8=

Iškodavimas apverčia šiuos veiksmus: kiekvienas simbolis susiejamas su savo 6 bitų skaičiumi, bitai sujungiami į srautą, o šis srautas vėl nuskaitomas 8 bitų baitais.

Base64 koduoto ilgio formulė

Kai įvestį sudaro n baitų, koduoto teksto ilgis simboliais yra:

encoded_length = 4 × ⌈n / 3⌉

čia ⌈x⌉ reiškia suapvalinimą iki artimiausio didesnio sveikojo skaičiaus. Ši formulė parodo, kodėl Base64 išvestis visada yra maždaug trečdaliu didesnė už įvestį: 4 išvesties simboliai kiekvieniems 3 įvesties baitams reiškia 33 % padidėjimą.

Kur naudojamas Base64

  • El. laiškų priedai (MIME). El. paštas buvo sukurtas tekstui, todėl failų priedai prieš siunčiant paverčiami į Base64, ir pridėtas failas tampa maždaug 33 % didesnis už originalą.
  • Duomenų URI. Maži vaizdai gali būti tiesiogiai įterpti į HTML ar CSS kaip tekstas, pavyzdžiui, data:image/png;base64,iVBORw0KGgo..., todėl nereikia atskiros failo užklausos. Tai geriausiai veikia su mažais failais, nes dideli išpučia puslapį ir negali būti talpinami atskirai.
  • API ir JSON. JSON neturi gimtojo būdo saugoti neapdorotus dvejetainius duomenis, todėl per JSON API siunčiami dvejetainiai failai dažnai pirmiausia užkoduojami Base64.
  • HTTP pagrindinis autentifikavimas. Antraštė Authorization koduoja naudotojo vardą ir slaptažodį kaip Base64, pavyzdžiui, Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=. Tai savaime nėra saugu: prisijungimo duomenis gali perskaityti bet kas, juos perimantis, todėl bazinį autentifikavimą reikėtų naudoti tik per HTTPS.
  • JSON žiniatinklio prieigos raktai (JWT). Kiekviena iš trijų JWT dalių užkoduojama naudojant Base64URL – variantą, kurį saugu talpinti URL.
  • Dvejetainių duomenų saugojimas kaip teksto. Duomenų bazėse ar konfigūracijos failuose, kurie priima tik tekstą, dvejetainiai duomenys kartais saugomi kaip Base64 eilutė.

Base64 palyginimas su kitais kodavimais

URL tinkama Base64 koduotė pakeičia standartinius simbolius + ir / simboliais - ir _, nes + ir / URL turi specialią reikšmę. Jis naudojamas JWT, URL užklausų parametrams ir failų pavadinimams. Šis įrankis sukuria standartinę Base64 išvestį; norint ją paversti URL tinkamu variantu, tereikia sukeisti šiuos du simbolius.

Base32 naudoja 32 simbolių abėcėlę, todėl kiekvienas simbolis perteikia 5 bitus, o ne 6. Jis kas 5 baitus paverčia į 8 simbolius, o pridėtinės sąnaudos sudaro 60 % (8 ÷ 5 = 1,6), palyginti su Base64 rodikliu 33 %. Base32 pasirenkamas tada, kai išvestį reikia įvesti ranka arba perskaityti telefonu, nes jame nėra skirtingų raidžių registrų ir lengvai supainiojamų simbolių.

Šešioliktainis kodavimas naudoja 16 simbolių (0–9, A–F) ir kiekvienam baitui reikia 2 simbolių, todėl dydis padvigubėja (100 % pridėtinės sąnaudos). Ji dažnai naudojama maišos reikšmėms, spalvoms ir MAC adresams pateikti, kai svarbiau įskaitomumas nei mažas dydis.

Kada nenaudoti Base64

Base64 padidina dydį ir procesoriaus sąnaudas, todėl prastai tinka dideliems failams siųsti tinklu; tiesiogiai siunčiami neapdoroti dvejetainiai duomenys užima mažiau vietos ir perduodami greičiau. Nereikėtų jo naudoti slaptiems duomenims, pavyzdžiui, slaptažodžiams ar API raktams, paslėpti, nes iškodavimui nereikia jokios paslapties. Dideliems failams saugoti paprastai geriau rinktis duomenų bazės dvejetainių duomenų stulpelio tipą arba failų saugojimo paslaugą, o ne ilgą Base64 eilutę tekstiniame lauke.

Dažniausios klaidos

  • UTF-8 konvertavimo praleidimas. Užkodavus tekstą su diakritiniais ženklais pažymėtomis raidėmis ar jaustukais, prieš tai jo nepavertus į UTF-8 baitus, išvestis gali būti sugadinta.
  • Užpildo pašalinimas. Kai kurios sistemos pašalina galinius = simbolius. Dauguma dekoderių vis tiek gali veikti, jei eilutės ilgis vėl papildomas iki 4 kartotinio, tačiau ne visi juos priima, todėl saugiau užpildą palikti.
  • Likutiniai eilučių lūžiai. Senesni MIME pagrįsti kodavimo įrenginiai įterpia eilučių lūžį kas 76 simbolius; dauguma šiuolaikinių dekoderių tikisi vienos vientisos eilutės be jų.
  • Variantų supainiojimas. Standartinis Base64 ir URL saugus Base64 toms pačioms dviem abėcėlės pozicijoms naudoja skirtingus simbolius; iškodavus naudojant netinkamą variantą gaunami beprasmiai duomenys arba klaida.

Dažnai užduodami klausimai

Ar Base64 yra šifravimo forma? Ne. Tai grįžtamasis tekstinio kodavimo būdas, o ne šifravimas. Kiekvienas gali iškoduoti Base64 eilutę akimirksniu be slaptažodžio. Jei duomenys turi likti slapti, naudokite šifravimo algoritmą, pavyzdžiui, AES.

Kodėl Base64 padidina duomenų dydį? Nes vienas visas simbolis naudojamas tik 6 bitams perteikti, o neapdorotame baite telpa 8 bitai. Paverčiant 3 baitus (24 bitus) į 4 simbolius, išvestis tampa 4/3, arba maždaug 33 %, didesnė už įvestį.

Ar Base64 gali koduoti vaizdus ir kitus dvejetainius failus? Taip. Bet kurį dvejetainį failą, įskaitant vaizdus, PDF ir garso failus, galima užkoduoti Base64 ir iškoduoti atgal tiksliai baitas po baito. Tai dažnai naudojama mažiems vaizdams, įterptiems į HTML ar CSS, tačiau dideliems failams šis būdas netinka.

Kuo skiriasi Base64 ir Base64URL? Base64URL pakeičia standartinius simbolius + ir / simboliais - ir _, todėl rezultatą saugu naudoti URL ar failo pavadinime be papildomo ekranavimo. Dėl šios priežasties JWT naudoja Base64URL.

Kodėl iškoduojant mano Base64 eilutę rodoma klaida „invalid“? Dažniausios priežastys yra Base64 abėcėlei nepriklausantys simboliai, pavyzdžiui, URL saugiame variante naudojami - ir _, arba eilutė, kurios ilgis yra vienetu didesnis už 4 kartotinį. Tokios eilutės ilgis negali būti galiojančios Base64 eilutės ilgis. Iškodavimas taip pat nepavyksta, kai iškoduoti baitai nėra tinkamas UTF-8 tekstas. Šis įrankis nepaiso tarpų ir eilučių lūžių eilutėje, taip pat iškoduoja eilutę, iš kurios pašalintas galinis = užpildas.

Iš kur atsirado Base64? Šis metodas atsirado ankstyvosiose dvejetainių duomenų siuntimo per tik tekstui skirtas pašto sistemas schemose 1980-aisiais, o oficialiai buvo standartizuotas kaip MIME dalis RFC 2045 1996 metais. Dabartinė Base64, Base32 ir Base16 specifikacija yra RFC 4648.