Što je Base64?

Base64 je metoda za pretvaranje proizvoljnih binarnih podataka, podataka koji se sastoje od više od znakova običnog teksta, u običnu tekstualnu poruku koja se zatim može prenijeti preko računalne mreže. To je ono što se zove kodiranje. Iako izlaz base64 kodirane poruke nije nešto što čovjek može lako razumjeti, on se još uvijek sastoji od 64 uobičajena znaka engleskog jezika, odakle dolazi i naziv, s dodatnim 65. znakom koji se koristi u posebne svrhe.

Ideja iza base64 nastala je kada se pojavila potreba za dobivanjem više od jednostavnih tekstualnih znakova putem umrežene komunikacije kao što je e-pošta. Prve poruke e-pošte započele su kao znakovi kodirani u Američkom standardnom kodu za razmjenu informacija (ASCII), metodi kodiranja koja se koristila u računalima za predstavljanje znakova abecede engleskog jezika kao teksta na zaslonima ili pisačima. Kao dodatne binarne informacije potrebne za prolaz, razvijene su nove sheme kodiranja.

Metoda kodiranja base64 prvi put je opisana u onome što je poznato kao standard višenamjenskih ekstenzija internetske pošte (MIME). MIME standard definira metode pomoću kojih se drugi znakovi koji nisu kodirani ASCII, kao što su abecede koje koriste neengleski jezici, kao i drugi proizvoljni binarni podaci, također mogu biti kodirani u ASCII sekvence i prenijeti putem e-mail poruka. Od dva primarna načina kodiranja opisana MIME standardom, base64 dijeli ulogu s drugim poznatim kao quoted-printable. Dok je metoda citiranog ispisa sposobna proširiti ASCII nešto više od svojih ograničenih 94 ispisiva znaka, base64 može uzeti bilo koji slijed bajtova i pretvoriti ga u ASCII slijed.

Base64 treba uzeti nizove podataka koji inače ne bi zadovoljili ASCII standard i pretvoriti ih u ASCII. Da biste to učinili, metoda kodiranja je proces prikupljanja podataka u grupe od tri bajta i pretvaranja u četiri broja koji predstavljaju odgovarajuće ASCII znakove. Budući da je bajt osam bitova, gdje je svaki bit predstavljen ili jednom ili nulom, tri bajta su povezana s kraja na kraj i cijeli niz ide u 24-bitni međuspremnik. 24 jedinice i nule se zatim dijele u četiri grupe od šest bitova, gdje se svakoj dodjeljuju brojevi koji odgovaraju ASCII znaku.

Budući da base64 može kodirati bilo koje binarne podatke, svaki slijed bajtova može proći kroz proces. Međutim, postoji kvaka u onim slučajevima kada broj bajtova za kodiranje nije djeljiv s tri tako da se bitovi mogu uklopiti u međuspremnik. Ako niz bajtova sadrži, recimo, četiri ili pet bajtova, nešto je još uvijek potrebno za popunjavanje međuspremnika i stvaranje punih 24 bita. U tim slučajevima, svaki nedostajući bajt je predstavljen sa osam 0s, a zatim se pretvara u znakove za punjenje u gotovom kodiranju. Odatle dolazi prethodno spomenuti 65. znak, predstavljen u kodiranoj poruci znakom jednakosti (=); uvijek se pojavljuje na samom kraju kodiranja ako je potrebno ispuniti.

Iako je base64 izvorno osmišljen za prijenos binarnih podataka putem e-mail poruka, njegova upotreba je došla u igru ​​u brojnim drugim područjima osim MIME-a. Jedna takva prilično uobičajena upotreba je za web baze podataka i aplikacije za kodiranje podataka za stvaranje jedinstvenog lokatora resursa (URL) na web obrascu. Proširivi jezik za označavanje (XML) također koristi varijantu koja omogućuje da se binarni podaci, poput malih slika, uključe u XML dokumente. Postoje i druge varijacije za metode šifriranja i druge sigurnosne tehnike kao što je skrivanje lozinki.