Ce este Base64 și de ce există
Base64 este o schemă de codificare binar-la-text. Ia bytes bruți - genul de date care alcătuiesc imagini, arhive, chei criptografice sau orice altceva care nu este text simplu lizibil - și îi rescrie folosind un alfabet mic și sigur de 64 de caractere afișabile: cele 26 de litere mari A-Z, cele 26 de litere mici a-z, cele zece cifre 0-9 și două simboluri suplimentare, de obicei + și /. Semnul egal este folosit pentru padding la final. Pentru că fiecare caracter produs este ASCII obișnuit, rezultatul poate trece prin sisteme care au fost concepute doar pentru a gestiona text.
Acesta este întregul motiv pentru care a fost inventat Base64. Multe protocoale mai vechi - e-mailul fiind exemplul clasic - presupun că textul pe care îl transportă este text. Dacă le dai date binare brute, unii bytes se corup, sunt eliminați sau interpretați ca și caractere de control, iar datele ajung deteriorate. Base64 ocolește problema convertind bytes-ii într-o formă pe care orice canal sigur pentru text o va lăsa să treacă neatinsă. Datele originale pot fi apoi reconstruite exact la celălalt capăt.

Cum funcționează conversia
Mecanic, Base64 grupează datele de intrare în segmente de câte trei bytes - adică 24 de biți - și apoi reîmparte acei 24 de biți în patru grupuri a câte șase biți fiecare. Șase biți pot reprezenta 64 de valori posibile, motiv pentru care alfabetul are exact 64 de caractere. Așadar trei bytes de intrare devin întotdeauna patru caractere de ieșire. Când lungimea datelor de intrare nu este un multiplu exact de trei, codificatorul completează ultimul grup cu unul sau două caractere =, astfel încât un decodificator să știe unde se termină datele reale.
Acest raport de patru-la-trei este și sursa faimoasei penalizări de dimensiune: rezultatul Base64 este cu aproximativ 33% mai mare decât datele originale. Dacă textul codificat este împărțit pe linii cu lățime fixă, așa cum cer adesea standardele de e-mail, mai plătești câteva procente în plus pentru întreruperile de linie. Acest overhead este prețul compatibilității, iar pentru majoritatea utilizărilor este un schimb corect.
Unde întâlnești Base64
Odată ce știi ce să cauți, Base64 apare peste tot în calculul de zi cu zi:
- URI-uri de date. O imagine mică sau un font pot fi încorporate direct în HTML sau CSS printr-un URI de tip
data:, cu conținutul fișierului scris ca Base64. Browserul îl decodifică inline, economisind o cerere de rețea separată. - Atașamente de e-mail. MIME, standardul care permite e-mailului să transporte fișiere, se bazează pe Base64 pentru a muta atașamente binare printr-un sistem de poștă doar-text, fără deteriorări.
- Autentificarea HTTP Basic. Familiarul header
Authorization: Basic ...este pur și simplu un nume de utilizator și o parolă unite printr-un simbol de două puncte și codificate Base64 - motiv pentru care autentificarea Basic trebuie să ruleze mereu peste HTTPS. - Token-uri și configurări. JSON Web Token-uri, certificate, chei SSH și nenumărate valori de configurare sunt stocate sau transmise ca Base64 pentru a supraviețui copierii-lipirii și stocării bazate pe text.
Codificarea nu este criptare
Acesta este cel mai important lucru de înțeles și încurcă atât începători, cât și dezvoltatori experimentați. Base64 nu este criptare și nu oferă deloc securitate. Nu există nicio cheie secretă, nicio parolă și nimic privat în ea. Transformarea este complet publică și complet reversibilă: oricine vede un string Base64 îl poate decodifica înapoi la bytes-ii originali într-o secundă, folosind un instrument exact ca acesta.
Așadar Base64 este un loc slab de ascundere pentru parole, chei API sau orice valoare sensibilă. Dacă un string doar pare criptat, asta nu îl face protejat. Criptarea, în schimb, transformă datele cu o cheie secretă astfel încât doar cineva care deține acea cheie le poate citi. Cele două rezolvă probleme diferite: criptarea protejează confidențialitatea, Base64 protejează compatibilitatea. Sunt adesea folosite împreună - poți cripta datele cu AES și apoi să codifici Base64 textul cifrat astfel încât să poată circula printr-un canal text - dar unul nu este niciodată un substitut pentru celălalt.

Codificare vs Decodificare
Cele două direcții sunt simple imagini în oglindă. Codificarea ia textul sau datele binare originale și produce string-ul de caractere Base64. Decodificarea ia un string Base64 și reconstruiește exact bytes-ii originali. Instrumentul nostru face ambele operații direct în browserul tău - nimic din ce scrii sau lipești nu este trimis vreodată către un server, astfel încât operația este complet locală și privată. Asta face sigur să decodifici un token pe care îl depanezi sau să codifici un fragment pe care vrei să-l încorporezi, fără ca datele tale să părăsească pagina.
Pentru conversii înrudite, vezi instrumentul nostru codificare/decodificare URL pentru percent-encoding, sau decodorul JWT atunci când trebuie să inspectezi segmentele Base64 dintr-un token. Le vei găsi alături de restul instrumentelor pentru dezvoltatori.
Întrebări frecvente
Base64 este o formă de criptare?
Nu. Base64 este o codificare, nu criptare. Nu folosește nicio cheie și este complet reversibil de către oricine, deci nu oferă securitate. Folosește criptare reală, precum AES sau RSA, pentru a proteja datele sensibile.
De ce Base64 face datele mai mari?
Base64 transformă fiecare trei bytes de intrare în patru caractere de ieșire, ceea ce adaugă aproximativ 33% la dimensiune. Dacă rezultatul este împărțit pe linii cu lungime fixă, întreruperile de linie adaugă câteva procente în plus.
Ce caractere folosește Base64?
Alfabetul standard este format din cele 26 de litere mari, 26 de litere mici, cifrele de la 0 la 9, plus simbolurile plus și slash, cu semnul egal folosit pentru padding la final.
Pot stoca în siguranță parole în Base64?
Nu. Base64 doar schimbă felul în care arată datele, nu cine le poate citi. Oricine le poate decodifica instant. Parolele ar trebui să fie hash-uite cu un algoritm puternic, iar secretele ar trebui criptate.
Acest instrument Base64 este privat?
Da. Codificarea și decodificarea au loc integral în browserul tău. Nimic din ce introduci nu este încărcat sau trimis către vreun server, astfel încât datele tale rămân pe propriul dispozitiv.
Care este diferența dintre codificare și decodificare?
Codificarea convertește text sau date binare originale într-un string Base64. Decodificarea face invers, transformând un string Base64 înapoi în exact bytes-ii originali. Sunt operații în oglindă.
