Kas yra Base64?

„Base64“ yra būdas paversti savavališkus dvejetainius duomenis, sudarytus iš daugiau nei paprasto teksto simbolių, į paprastą tekstinį pranešimą, kurį vėliau galima perkelti per kompiuterių tinklą. Tai vadinama kodavimu. Nors base64 užkoduoto pranešimo išvestis nėra kažkas, ko žmogus gali lengvai suprasti, jis vis tiek susideda iš 64 įprastų anglų kalbos simbolių, iš kur kilo pavadinimas, su papildomu 65-uoju simboliu, naudojamu specialiems tikslams.

„Base64“ idėja kilo, kai atsirado poreikis gauti daugiau nei paprastus teksto simbolius per tinklo ryšį, pvz., el. paštą. Pirmieji el. pašto pranešimai prasidėjo kaip simboliai, užkoduoti pagal Amerikos standartinį informacijos mainų kodą (ASCII), kodavimo metodą, naudojamą kompiuteriuose, vaizduojant anglų kalbos abėcėlės simbolius kaip tekstą ekranuose arba spausdintuvuose. Norint gauti papildomos dvejetainės informacijos, buvo sukurtos naujos kodavimo schemos.

„Base64“ kodavimo metodas pirmą kartą buvo aprašytas vadinamajame Multipurpose Internet Mail Extensions (MIME) standarte. MIME standartas apibrėžė metodus, kuriais kiti simboliai, kurie nebuvo užkoduoti ASCII, pvz., abėcėlės, naudojamos ne anglų kalbomis, taip pat kiti savavališki dvejetainiai duomenys taip pat gali būti koduojami į ASCII sekas ir perduodami el. pašto žinutėmis. Iš dviejų pagrindinių kodavimo priemonių, aprašytų MIME standarte, „base64“ dalijasi vaidmeniu su kita, žinoma kaip cituojama-spausdinama. Nors cituojamas spausdinimo metodas gali šiek tiek išplėsti ASCII daugiau nei ribotas 94 spausdinamų simbolių skaičius, base64 gali paimti bet kokią baitų seką ir konvertuoti ją į ASCII seką.

„Base64“ turi paimti duomenų eilutes, kurios kitaip neatitiktų ASCII standarto, ir konvertuoti jas į ASCII. Norėdami tai padaryti, kodavimo metodas yra duomenų rinkimas į trijų baitų grupes ir konvertavimas į keturis skaičius, atitinkančius atitinkamus ASCII simbolius. Kadangi baitas yra aštuonių bitų, kur kiekvienas bitas žymimas vienu arba nuliu, trys baitai yra susieti iki galo ir visa seka patenka į 24 bitų buferį. Tada 24 vienetai ir nuliai suskirstomi į keturias grupes po šešis bitus, kur kiekvienai iš jų priskiriami numeriai, atitinkantys ASCII simbolį.

Kadangi base64 gali užkoduoti bet kokius dvejetainius duomenis, procesą gali atlikti bet kokia baitų seka. Tačiau tais atvejais, kai kodavimui skirtų baitų skaičius nesidalija iš trijų, yra klaida, kad bitai tilptų į buferį. Jei baitų sekoje yra, tarkime, keturi ar penki baitai, vis tiek reikia kažko užpildyti buferį ir sudaryti visus 24 bitus. Tokiais atvejais kiekvienas trūkstamas baitas žymimas aštuoniais 0 ir vėliau konvertuojamas į užpildymo simbolius baigtoje koduotėje. Iš čia kilęs anksčiau minėtas 65-asis simbolis, užkoduotame pranešime vaizduojamas lygybės ženklu (=); jis pasirodo tik pačioje kodavimo pabaigoje, jei prireiktų užpildo.

Nors iš pradžių „base64“ buvo sukurta dvejetainiams duomenims perduoti el. pašto žinutėmis, ji buvo naudojama ne tik MIME, bet ir daugelyje kitų sričių. Vienas iš tokių gana dažnų naudojimo būdų yra žiniatinklio duomenų bazės ir programos, skirtos duomenims koduoti, kad būtų sukurtas vienodas išteklių ieškiklis (URL) žiniatinklio formoje. Išplečiamoje žymėjimo kalboje (XML) taip pat naudojamas variantas, leidžiantis dvejetainius duomenis, pvz., mažus vaizdus, ​​įtraukti į XML dokumentus. Yra ir kitų šifravimo metodų ir kitų su sauga susijusių metodų, pvz., slaptažodžių slėpimo, variantų.