Base64
Scrie sau lipește text și este codificat sau decodificat pe loc.
0 caractere · 0 octeți
Rezultat
Cum funcționează
Base64 rescrie octeți oarecare cu 64 de caractere care trec nevătămate prin sisteme făcute pentru text, precum e-mailul și adresele web.
Trei octeți devin patru caractere, ceea ce face rezultatul cu aproximativ o treime mai lung decât originalul. Semnele egal de la final sunt completare, folosită când numărul de octeți nu se împarte la trei.
Base64 este o codificare, nu o criptare. Oricine o poate decodifica, așa că nu protejează nimic. Folosește-o ca să transporți date, niciodată ca să le ascunzi.
Textul este codificat în UTF-8 înainte de conversie, motiv pentru care diacriticele și emoji funcționează. Funcția încorporată a browserului se descurcă singură doar cu caracterele sub 256.
Varianta sigură pentru URL înlocuiește plusul cu cratimă și bara oblică cu liniuță de subliniere. Decodificarea de aici acceptă oricare variantă, cu sau fără completare.
Cum lucrează instrumentul
La codificare, instrumentul transformă mai întâi textul în octeți UTF-8 și apoi lasă funcția btoa a browserului să-i scrie în Base64. La decodificare, elimină toate spațiile albe, inclusiv trecerile la rând nou din interiorul textului, transformă cratimele și liniuțele de subliniere înapoi în plus și bară oblică și adaugă semne egal până când lungimea se împarte la patru. Apoi decodifică funcția atob a browserului, iar octeții sunt citiți ca UTF-8 în mod strict: octeții care nu formează UTF-8 valid dau un mesaj de eroare în loc de caractere de înlocuire. Sub câmp vezi și caracterele, și octeții. Caracterele sunt numărate așa cum le vede cititorul, astfel încât un emoji cu nuanță de piele este un singur caracter, dar opt octeți în UTF-8, iar octeții sunt cei care dau lungimea rezultatului.
Exemplu de calcul
Hă devine trei octeți în UTF-8: 48 pentru H și C4 83 pentru ă. Cei 24 de biți se împart în patru grupuri de câte șase: 010010, 001100, 010010 și 000011, adică 18, 12, 18 și 3. În alfabetul Base64, unde A–Z sunt 0–25 și a–z sunt 26–51, acestea sunt S, M, S și D. Rezultatul este SMSD, fără completare, pentru că trei octeți încap exact în patru caractere.
Ura! are patru octeți și devine VXJhIQ==. Al patrulea octet umple doar două caractere dintr-un grup nou de patru, iar cele două semne egal completează grupul.
Cazuri limită
Instrumentul lucrează cu text. Base64 care conține date binare, cum ar fi o imagine sau un fișier comprimat, dă de regulă mesajul de eroare la decodificare, pentru că octeții nu sunt UTF-8 valid.
În e-mail, Base64 este împărțit pe rânduri: RFC 2045 permite cel mult 76 de caractere pe rând și spune că trecerile la rând nou trebuie ignorate la decodificare. Pentru că instrumentul elimină mai întâi toate spațiile albe, o parte de text codificată dintr-un e-mail poate fi lipită așa cum este.
Un șir a cărui lungime dă restul 1 la împărțirea la patru nu poate fi niciodată valid. Un ultim caracter singur poartă doar șase biți, prea puțini pentru un octet întreg, așa că algoritmul din WHATWG Infra Standard, pe care îl urmează atob, respinge o astfel de intrare. VXJhI, adică VXJhIQ== fără ultimele trei caractere, dă mesajul de eroare, în timp ce VXJhIQ fără semne egal se decodifică în Ura!.