Kaj je Base64?

Base64 je metoda za pretvorbo poljubnih binarnih podatkov, podatkov, sestavljenih iz več kot samo znakov golega besedila, v golo besedilno sporočilo, ki se nato lahko prenese po računalniškem omrežju. To je tisto, kar se imenuje kodiranje. Čeprav izhod sporočila, kodiranega z base64, ni nekaj, kar bi človek zlahka razumel, je še vedno sestavljen iz 64 običajnih znakov angleškega jezika, od koder izvira ime, z dodatnim 65. znakom, ki se uporablja za posebne namene.

Ideja za base64 je nastala, ko se je pojavila potreba po pridobivanju več kot preprostih besedilnih znakov prek omrežne komunikacije, kot je e-pošta. Prva e-poštna sporočila so se začela kot znaki, kodirani v ameriški standardni kodi za izmenjavo informacij (ASCII), metodi kodiranja, ki se uporablja v računalnikih za predstavitev znakov angleške abecede kot besedila na zaslonih ali tiskalnikih. Ker so bile potrebne dodatne binarne informacije, so bile razvite nove sheme kodiranja.

Metoda kodiranja base64 je bila prvič opisana v tako imenovanem standardu Multipurpose Internet Mail Extensions (MIME). Standard MIME je definiral metode, s katerimi bi lahko druge znake, ki niso bili kodirani v ASCII, kot so abecede, ki jih uporabljajo neangleški jeziki, kot tudi drugi poljubni binarni podatki, tudi kodirali v zaporedja ASCII in jih posredovali prek e-poštnih sporočil. Od dveh primarnih načinov kodiranja, ki jih opisuje standard MIME, si base64 deli vlogo z drugim, znanim kot quoted-printable. Medtem ko je metoda citiranega tiskanja sposobna razširiti ASCII nekoliko preko svojih omejenih 94 natisljivih znakov, lahko base64 vzame katero koli zaporedje bajtov in ga pretvori v zaporedje ASCII.

Base64 mora vzeti nize podatkov, ki sicer ne bi ustrezali standardu ASCII, in jih pretvoriti v ASCII. Za to je metoda kodiranja postopek zbiranja podatkov v skupine po tri bajte in pretvorbe v štiri številke, ki predstavljajo ustrezne znake ASCII. Ker je bajt osem bitov, kjer je vsak bit predstavljen z eno ali ničlo, so trije bajti povezani od konca do konca in celotno zaporedje gre v 24-bitni medpomnilnik. 24 enic in ničel se nato razdeli v štiri skupine po šest bitov, kjer se vsaki dodelijo številke, ki se ujemajo z znakom ASCII.

Ker je base64 sposoben kodirati vse binarne podatke, lahko skozi postopek gre katero koli zaporedje bajtov. Vendar pa obstaja težava v tistih primerih, ko število bajtov za kodiranje ni deljivo s tremi, tako da se biti lahko prilegajo v medpomnilnik. Če zaporedje bajtov vsebuje, recimo, štiri ali pet bajtov, je še vedno nekaj potrebno za zapolnitev medpomnilnika in sestavo celih 24 bitov. V teh primerih je vsak manjkajoči bajt predstavljen z osmimi 0s in se nato v končnem kodiranju pretvori v znake za polnjenje. Od tod izvira prej omenjeni 65. znak, ki je v kodiranem sporočilu predstavljen z znakom enakosti (=); pojavi se le na samem koncu kodiranja, če je potrebno polnilo.

Čeprav je bil base64 prvotno zasnovan za prenos binarnih podatkov prek e-poštnih sporočil, je poleg MIME njegova uporaba prišla v poštev na številnih drugih področjih. Ena takih dokaj pogostih uporab je za spletne baze podatkov in aplikacije za kodiranje podatkov za ustvarjanje enotnega lokatorja virov (URL) na spletnem obrazcu. Razširljivi označevalni jezik (XML) uporablja tudi različico, ki omogoča vključitev binarnih podatkov, kot so majhne slike, v dokumente XML. Obstajajo tudi druge različice za metode šifriranja in druge tehnike, povezane z varnostjo, kot je skrivanje gesel.