Codificator Decoder Base64 - Instrument Online Gratuit de Conversie Base64
Instrument gratuit de codificare și decodificare base64. Convertiți text în Base64 sau decodificați șiruri Base64 instant. Acceptă codificare standard și sigură pentru URL. Nu este necesară autentificarea.
Codificator/Decodificator Base64
Convertește text în și din codificare Base64
Documentație
Ce este codificarea Base64?
Base64 este o metodă de transformare a oricăror date, inclusiv a datelor binare precum imaginile, în text simplu alcătuit numai din litere, cifre și câteva simboluri. Un codificator base64 transformă datele în această formă text. Un decodificator base64 le readuce la datele originale. Programele folosesc Base64 pentru a transfera în siguranță date binare prin sisteme precum e-mailul sau JSON, care acceptă text simplu.
Base64 folosește un alfabet de 64 de caractere:
- Litere majuscule A–Z (26 de caractere)
- Litere minuscule a–z (26 de caractere)
- Cifrele 0–9 (10 caractere)
- Două simboluri, de obicei
+și/(2 caractere)
Unele sisteme folosesc și semnul egal (=) la sfârșitul rezultatului, ca umplere. Umplerea nu face parte din alfabetul de 64 de caractere; ea doar completează lungimea.
De ce există Base64
Multe protocoale text mai vechi, inclusiv e-mailul (SMTP) și unele componente ale HTTP, au fost concepute pentru a transporta text ASCII de 7 biți. Acestea pot corupe octeții binari neprelucrați, precum octeții dintr-un fișier JPEG. Base64 evită acest lucru reprezentând fiecare octet numai prin caractere sigure și afișabile. De aceea, atașamentele de e-mail, elementele grafice încorporate în pagini web și câmpurile binare din JSON trec frecvent mai întâi prin Base64.
Base64 nu este nici comprimare, nici criptare. Rezultatul codificat este întotdeauna mai mare decât datele de intrare și oricine îl poate decodifica fără parolă sau cheie.
Cum se folosește acest instrument
- Introduceți sau lipiți textul în caseta de introducere.
- Alegeți „Encode to Base64” pentru a converti textul în Base64 sau „Decode from Base64” pentru a transforma un șir Base64 înapoi în text.
- Activați conversia în timp real pentru ca rezultatul să se actualizeze automat în timp ce tastați.
- Copiați rezultatul folosind butonul de copiere.
Instrumentul citește și scrie text Unicode standard, astfel încât literele accentuate, simbolurile și emoji-urile sunt codificate și decodificate corect, nu doar literele simple din engleză.
Cum funcționează codificarea Base64
Base64 transformă fiecare 3 octeți de intrare (24 de biți) în 4 caractere de ieșire (fiecare conținând 6 biți), deoarece 24 împărțit la 6 este egal cu 4.
- Luați octeții de intrare și scrieți-i sub formă binară.
- Grupați biții în blocuri de câte 24 de biți (3 octeți).
- Împărțiți fiecare bloc de 24 de biți în patru secțiuni de câte 6 biți.
- Căutați fiecare număr de 6 biți (de la 0 la 63) în alfabetul Base64 și notați caracterul corespunzător.
Dacă lungimea datelor de intrare nu este multiplu de 3, ultimul bloc este incomplet. Codificatorul îl completează cu biți zero, apoi adaugă caractere = la rezultat, astfel încât acesta să fie în continuare format din grupuri de câte 4:
- Un octet rămas produce 2 caractere Base64 plus
==. - Doi octeți rămași produc 3 caractere Base64 plus un caracter
=.
Exemplu de codificare Base64
Codificarea cuvântului „Hello”:
- Valori ASCII: 72, 101, 108, 108, 111
- Binar:
01001000 01100101 01101100 01101100 01101111 - Primii 3 octeți (24 de biți) sunt împărțiți în patru grupuri de câte 6 biți:
010010 000110 010101 101100, care reprezintă numerele 18, 6, 21, 44 → caractereleS,G,V,s. - Cei 2 octeți rămași (16 biți) sunt împărțiți în trei grupuri de câte 6 biți, adăugându-se 2 biți zero la sfârșit:
011011 000110 111100, care reprezintă numerele 27, 6, 60 → caractereleb,G,8. - Deoarece au rămas 2 octeți, se adaugă un caracter
=la sfârșit. - Rezultat:
SGVsbG8=
Decodificarea inversează acești pași: fiecare caracter este mapat la numărul său de 6 biți, biții sunt uniți într-un flux, iar fluxul este apoi citit sub formă de octeți de 8 biți.
Formula lungimii codificate în Base64
Pentru o intrare de n octeți, lungimea codificată în caractere este:
encoded_length = 4 × ⌈n / 3⌉
unde ⌈x⌉ înseamnă rotunjirea în sus la cel mai apropiat număr întreg. Această formulă arată de ce rezultatul Base64 este întotdeauna cu aproximativ o treime mai mare decât datele de intrare: 4 caractere de ieșire pentru fiecare 3 octeți de intrare reprezintă o creștere de 33 %.
Unde se folosește Base64
- Atașamente de e-mail (MIME). E-mailul a fost conceput pentru text, astfel încât atașamentele sunt convertite în Base64 înainte de trimitere, ceea ce face fișierul atașat cu aproximativ 33 % mai mare decât originalul.
- URI de date. Imaginile mici pot fi încorporate direct în HTML sau CSS ca text, de exemplu
data:image/png;base64,iVBORw0KGgo..., evitând o solicitare separată pentru fișier. Această metodă funcționează cel mai bine pentru fișiere mici, deoarece cele mari măresc excesiv pagina și nu pot fi memorate în cache separat. - API-uri și JSON. JSON nu are o metodă nativă de stocare a datelor binare neprelucrate, astfel încât fișierele binare trimise printr-un API JSON sunt adesea codificate mai întâi în Base64.
- Autentificare HTTP Basic. Antetul
Authorizationcodifică un nume de utilizator și o parolă ca Base64, de exempluAuthorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=. Aceasta nu este sigură în sine; datele de autentificare pot fi citite de oricine le interceptează, astfel încât autentificarea Basic trebuie utilizată numai prin HTTPS. - JSON Web Tokens (JWT). Fiecare dintre cele trei componente ale unui JWT este codificată prin Base64URL, o variantă sigură pentru utilizarea într-un URL.
- Stocarea datelor binare ca text. Bazele de date sau fișierele de configurare care acceptă numai text stochează uneori date binare sub forma unui șir Base64.
Base64 comparat cu alte codificări
Base64 sigur pentru URL înlocuiește caracterele standard + și / cu - și _, deoarece + și / au o semnificație specială într-un URL. Este folosit pentru JWT-uri, parametri de interogare URL și nume de fișiere. Acest instrument produce rezultate Base64 standard; conversia la forma sigură pentru URL necesită doar înlocuirea acestor două caractere.
Base32 folosește un alfabet de 32 de caractere, astfel încât fiecare caracter transportă 5 biți în loc de 6. Convertește fiecare 5 octeți în 8 caractere, cu un surplus de 60 % (8 ÷ 5 = 1,6), față de 33 % pentru Base64. Base32 este ales atunci când rezultatul trebuie introdus manual sau citit la telefon, deoarece evită literele cu majuscule și minuscule amestecate, precum și caracterele ușor de confundat.
Hexazecimalul folosește 16 caractere (0–9, A–F) și necesită 2 caractere pentru fiecare octet, dublând dimensiunea (surplus de 100 %). Este utilizat frecvent pentru afișarea hashurilor, culorilor și adreselor MAC, unde lizibilitatea contează mai mult decât dimensiunea compactă.
Când nu trebuie folosit Base64
Base64 mărește dimensiunea și consumul de procesor, astfel încât este nepotrivit pentru fișiere mari trimise prin rețea; transmiterea directă a datelor binare neprelucrate este mai compactă și mai rapidă. Nu trebuie folosit niciodată pentru a ascunde informații sensibile, precum parolele sau cheile API, deoarece decodificarea nu necesită niciun secret. Pentru stocarea fișierelor mari, tipul de coloană binară al unei baze de date sau un serviciu de stocare a fișierelor este de obicei preferabil unui șir Base64 lung într-un câmp text.
Greșeli frecvente
- Omiterea conversiei UTF-8. Codificarea textului cu litere accentuate sau emoji fără conversia prealabilă în octeți UTF-8 poate corupe rezultatul.
- Eliminarea umplerii. Unele sisteme elimină caracterele
=de la sfârșit. Majoritatea decodificatoarelor pot funcționa în continuare dacă șirul este completat până la un multiplu de 4, dar nu toate le acceptă, așa că este mai sigur să păstrați umplerea. - Întreruperi de linie rămase. Codificatoarele mai vechi bazate pe MIME introduc o întrerupere de linie la fiecare 76 de caractere; majoritatea decodificatoarelor moderne așteaptă un singur șir continuu, fără acestea.
- Confundarea variantelor. Base64 standard și Base64 sigur pentru URL folosesc caractere diferite pentru aceleași două poziții din alfabet; decodificarea cu varianta greșită produce date ilizibile sau o eroare.
Întrebări frecvente
Este Base64 o formă de criptare? Nu. Este o codificare reversibilă a textului, nu criptare. Oricine poate decodifica instantaneu un șir Base64 fără parolă. Folosiți un algoritm de criptare precum AES dacă datele trebuie păstrate secrete.
De ce mărește Base64 dimensiunea datelor? Deoarece folosește un caracter întreg pentru a transporta doar 6 biți, în timp ce un octet neprelucrat conține 8 biți. Conversia a 3 octeți (24 biți) în 4 caractere înseamnă că rezultatul are dimensiunea 4/3, adică este cu aproximativ 33 % mai mare decât datele de intrare.
Poate Base64 să codifice imagini și alte fișiere binare? Da. Orice fișier binar, inclusiv imagini, PDF-uri și fișiere audio, poate fi codificat în Base64 și decodificat înapoi octet cu octet. Este folosit frecvent pentru imagini mici încorporate în HTML sau CSS, dar este o alegere nepotrivită pentru fișiere mari.
Care este diferența dintre Base64 și Base64URL?
Base64URL înlocuiește caracterele standard + și / cu - și _, astfel încât rezultatul poate fi utilizat într-un URL sau într-un nume de fișier fără escapare suplimentară. JWT-urile folosesc Base64URL din acest motiv.
De ce șirul meu Base64 produce o eroare „invalid” la decodificare?
Cele mai frecvente cauze sunt caracterele care nu fac parte din alfabetul Base64, precum - și _ utilizate de varianta sigură pentru URL, sau un șir a cărui lungime este cu unu mai mare decât un multiplu de 4. Niciun șir Base64 valid nu are această lungime. Decodificarea eșuează și atunci când octeții decodificați nu formează text UTF-8 valid. Acest instrument ignoră spațiile și întreruperile de linie din șir și decodifică în continuare un șir căruia i-a fost eliminată umplerea = de la sfârșit.
De unde provine Base64? Tehnica datează din primele metode de trimitere a datelor binare prin sisteme de e-mail limitate la text, în anii 1980, și a fost standardizată oficial ca parte a MIME în RFC 2045 în 1996. Specificația de referință actuală pentru Base64, Base32 și Base16 este RFC 4648.