Codare și decodare Base64
Transformați text sau un fișier în Base64 ori decodați Base64 înapoi în text lizibil. Caracterele Unicode sunt tratate corect, alfabetul URL-safe se activează dintr-un clic, iar decodarea acceptă oricare alfabet, cu sau fără padding.
0 caractere · 0 cuvinte · 0 rânduri
0 caractere · 0 cuvinte · 0 rânduri
Funcționează integral în această filă a browserului. Textul dvs. nu este încărcat și nici stocat.
Alfabetul Base64
Index → caracter conform RFC 4648. Ultimele două evidențiate diferă în varianta sigură pentru URL: 62 este + sau -, 63 este / sau _.
- 0A
- 1B
- 2C
- 3D
- 4E
- 5F
- 6G
- 7H
- 8I
- 9J
- 10K
- 11L
- 12M
- 13N
- 14O
- 15P
- 16Q
- 17R
- 18S
- 19T
- 20U
- 21V
- 22W
- 23X
- 24Y
- 25Z
- 26a
- 27b
- 28c
- 29d
- 30e
- 31f
- 32g
- 33h
- 34i
- 35j
- 36k
- 37l
- 38m
- 39n
- 40o
- 41p
- 42q
- 43r
- 44s
- 45t
- 46u
- 47v
- 48w
- 49x
- 50y
- 51z
- 520
- 531
- 542
- 553
- 564
- 575
- 586
- 597
- 608
- 619
- 62+ -
- 63/ _
Cât de lung devine rezultatul
Fiecare 3 octeți de intrare devin 4 caractere; un grup final de 1 sau 2 octeți este completat cu = în Base64 standard și lăsat necompletat în forma sigură pentru URL.
| Intrare | Octeți | Standard | Sigur pentru URL | Lungime |
|---|---|---|---|---|
U | 1 | VQ== | VQ | 4 |
Ul | 2 | VWw= | VWw | 4 |
Ult | 3 | VWx0 | VWx0 | 4 |
UltK | 4 | VWx0Sw== | VWx0Sw | 8 |
UltKi | 5 | VWx0S2k= | VWx0S2k | 8 |
UltKit | 6 | VWx0S2l0 | VWx0S2l0 | 8 |
Ce face Base64
Base64, definit în RFC 4648, scrie octeți oarecare folosind 64 de caractere ASCII imprimabile: A–Z, a–z, 0–9, + și /. Fiecare grup de trei octeți (24 de biți) este împărțit în patru numere de 6 biți, iar fiecare număr alege un caracter din alfabet. Când lungimea datelor nu este multiplu de trei, ultimul grup se completează cu unul sau două semne =. Rezultatul este întotdeauna cu aproximativ 33% mai mare decât datele de intrare: 4 caractere pentru fiecare 3 octeți.
Există pentru că multe canale au fost construite pentru text. E-mailul (MIME), URL-urile data: din HTML și CSS, câmpurile JSON care conțin imagini sau certificate și antetele de autentificare HTTP Basic folosesc Base64 pentru a transporta în siguranță date binare. Nu este criptare și nu ascunde nimic; decodarea nu cere nicio cheie.
Unicode și varianta URL-safe
Base64 codifică octeți, nu litere, deci textul trebuie mai întâi transformat în octeți. Instrumentul folosește întotdeauna UTF-8, codificarea pe care funcționează web-ul: é devine doi octeți, iar un emoji patru. Funcția btoa din browser, folosită singură, generează o eroare la orice caracter peste U+00FF, motiv pentru care codificatoarele simple eșuează la diacritice și emoji; aici textul trece mai întâi prin TextEncoder, iar decodarea face invers cu TextDecoder. Dacă octeții decodați nu sunt UTF-8 valid (o imagine, o arhivă zip), instrumentul îi afișează în hexazecimal, nu ca text deformat.
Base64 standard folosește + și /, care au semnificații în URL-uri și în numele fișierelor. Alfabetul sigur pentru URL din secțiunea 5 a RFC 4648 le înlocuiește cu - și _, iar completarea cu = se omite de obicei. JSON Web Tokens folosesc exact această formă. Decodorul acceptă ambele alfabete și lipsa completării, deci puteți lipi oricare variantă.
Codarea fișierelor și a imaginilor
Alegeți un fișier, iar instrumentul îl citește local cu FileReader și returnează Base64 sau un URL data: complet, cu tipul MIME al fișierului, gata de lipit într-o etichetă img sau într-un fundal CSS. Imaginile inline economisesc o cerere HTTP, dar cresc cu o treime și nu pot fi puse separat în cache, deci se potrivesc pentru pictograme mici, nu pentru fotografii. Pentru imagini cu previzualizare și fragmente HTML și CSS gata făcute, folosiți Imagine în Base64.
Întrebări frecvente
- De ce rezultatul Base64 este mai lung decât textul introdus?
- Fiecare 3 octeți devin 4 caractere, deci rezultatul are aproximativ 4/3 din mărimea datelor de intrare, plus cel mult două caractere de completare. Textul non-ASCII iese și mai lung, deoarece UTF-8 folosește între doi și patru octeți pe caracter.
- Ce sunt semnele = de la final?
- Completare (padding). Fac ca lungimea rezultatului să fie multiplu de patru când lungimea datelor nu este multiplu de trei. Un = înseamnă că ultimul grup avea doi octeți, două = înseamnă că avea un octet.
- De ce decodarea eșuează cu o eroare de caracter nevalid?
- Datele conțin ceva în afara alfabetului, cum ar fi un spațiu în interiorul unui cuvânt, un ghilimele sau un % din codarea URL. Rândurile noi și lipsa completării sunt tolerate; alte caractere nu.
- Este sigur să codați o parolă în Base64?
- Base64 nu oferă nicio protecție. Autentificarea HTTP Basic trimite user:parolă în Base64, motiv pentru care trebuie folosită doar prin HTTPS. Pentru a proteja secrete, folosiți criptare sau hashing reale.
- Care este diferența dintre Base64 și Base64url?
- Doar două caractere și completarea: Base64url folosește - și _ în loc de + și / și de obicei omite =, astfel încât rezultatul poate sta în URL-uri și nume de fișiere fără escapare.