Ce este Base64?

Base64 este o metodă de conversie a datelor binare arbitrare, date compuse din mai mult decât caractere text simplu, într-un mesaj text simplu care poate fi apoi transferat printr-o rețea de computere. Este ceea ce se numește o codificare. Deși ieșirea unui mesaj codificat în base64 nu este ceva ce un om poate înțelege cu ușurință, este încă compusă din 64 de caractere comune în limba engleză, de unde provine numele, cu un al 65-lea caracter suplimentar folosit în scopuri speciale.

Ideea din spatele baze64 a apărut pe măsură ce a apărut nevoia de a obține mai mult decât simple caractere text prin intermediul comunicațiilor în rețea, cum ar fi e-mailul. Primele mesaje de e-mail au început ca caractere codificate în Codul standard american pentru schimbul de informații (ASCII), metoda de codificare folosită în computere pentru a reprezenta caracterele alfabetului în limba engleză ca text pe afișaje sau imprimante. Ca informații binare suplimentare necesare pentru a trece, au fost dezvoltate noi scheme de codare.

Metoda de codificare base64 a fost descrisă pentru prima dată în ceea ce este cunoscut sub numele de standardul MIME (Multipurpose Internet Mail Extensions). Standardul MIME a definit metode prin care alte caractere care nu au fost codificate ASCII, cum ar fi alfabetele utilizate de limbi non-engleze, precum și alte date binare arbitrare, puteau fi, de asemenea, codificate în secvențe ASCII și transmise prin mesaje de e-mail. Dintre cele două mijloace principale de codare descrise de standardul MIME, base64 împărtășește rolul cu un altul cunoscut ca citat-printable. În timp ce metoda de tipărire citată este capabilă să extindă ASCII oarecum dincolo de cele 94 de caractere imprimabile limitate, base64 poate lua orice secvență de octeți și o poate converti într-o secvență ASCII.

Base64 trebuie să preia șiruri de date care altfel nu ar îndeplini standardul ASCII și să le convertească în ASCII. Pentru a face acest lucru, metoda de codificare este un proces de adunare a datelor în grupuri de trei octeți și de transformare a acestora în patru numere care reprezintă caracterele ASCII corespunzătoare. Deoarece un octet este de opt biți, unde fiecare bit este reprezentat fie de unul, fie de zero, trei octeți sunt legați cap la cap și întreaga secvență intră într-un buffer de 24 de biți. Cele 24 de unități și zerouri sunt apoi împărțite în patru grupuri de șase biți, unde fiecăruia i se atribuie apoi numere care se potrivesc cu un caracter ASCII.

Deoarece base64 este capabil să codifice orice date binare, orice secvență de octeți poate trece prin proces. Există totuși o problemă în acele cazuri în care numărul de octeți pentru codare nu este divizibil cu trei, astfel încât biții să se potrivească în buffer. Dacă o secvență de octeți conține, să zicem, patru sau cinci octeți, mai este nevoie de ceva pentru a umple tamponul și a alcătui cei 24 de biți complet. În aceste cazuri, fiecare octet lipsă este reprezentat de opt 0 și ulterior este convertit în caractere de completare în codificarea finală. De aici provine al 65-lea caracter menționat anterior, reprezentat în mesajul codificat cu semnul egal (=); apare doar la sfârșitul unei codificări în cazul în care este necesară o umplere.

Deși base64 a fost conceput inițial pentru a transmite date binare prin mesaje de e-mail, utilizarea sa a intrat în joc într-o serie de alte domenii, în afară de MIME. O astfel de utilizare destul de comună este ca bazele de date web și aplicațiile să codifice date pentru crearea unui localizator uniform de resurse (URL) pe un formular web. Limbajul de marcare extensibil (XML) folosește, de asemenea, o variantă care permite ca date binare, cum ar fi imagini mici, să fie incluse în documentele XML. Există și alte variante pentru metodele de criptare și alte tehnici legate de securitate, cum ar fi ascunderea parolelor.