Base64 kodiranje in dekodiranje
Pretvorite besedilo ali datoteko v Base64 ali dekodirajte Base64 nazaj v berljivo besedilo. Unicode je obravnavan pravilno, abeceda, varna za URL, je oddaljena le en klik, dekodiranje pa sprejme obe abecedi, z zapolnitvijo ali brez nje.
0 znakov · 0 besed · 0 vrstic
0 znakov · 0 besed · 0 vrstic
Deluje povsem v tem zavihku brskalnika. Vaše besedilo se nikoli ne naloži in ne shrani.
Abeceda Base64
Indeks → znak po RFC 4648. Označena zadnja dva se razlikujeta v različici, varni za URL: 62 je + ali -, 63 je / ali _.
- 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/ _
Kako dolg postane izpis
Vsi 3 vhodni bajti postanejo 4 znaki; končna skupina 1 ali 2 bajtov je v standardnem Base64 dopolnjena z =, v obliki, varni za URL, pa ostane brez polnila.
| Vnos | Bajti | Standardno | Varno za URL | Dolžina |
|---|---|---|---|---|
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 |
Kaj počne Base64
Base64, opredeljen v RFC 4648, zapiše poljubne bajte z 64 izpisljivimi znaki ASCII: A–Z, a–z, 0–9, + in /. Vsaka skupina treh bajtov (24 bitov) se razdeli na štiri 6-bitna števila, vsako število pa izbere en znak iz abecede. Če dolžina vhoda ni večkratnik števila tri, se zadnja skupina dopolni z enim ali dvema znakoma =. Rezultat je vedno približno 33 % večji od vhoda: 4 znaki na vsake 3 bajte.
Obstaja, ker so bili številni kanali zasnovani za besedilo. E-pošta (MIME), URL-ji data: v HTML in CSS, polja JSON, ki prenašajo slike ali potrdila, in glave osnovne overitve HTTP Basic uporabljajo Base64 za varen prenos dvojiških podatkov. Ni šifriranje in ničesar ne skrije; za dekodiranje ni potreben noben ključ.
Unicode in različica, varna za URL
Base64 kodira bajte, ne črk, zato je treba besedilo najprej pretvoriti v bajte. To orodje vedno uporablja UTF-8, kodiranje, na katerem teče splet: é postane dva bajta, emoji pa štirje. Vgrajena funkcija brskalnika btoa sama vrže napako pri vsakem znaku nad U+00FF, zato preprosti kodirniki odpovejo pri šumnikih in emojijih; tu gre besedilo najprej skozi TextEncoder, dekodiranje pa to obrne s TextDecoder. Če dekodirani bajti niso veljaven UTF-8 (slika, datoteka zip), jih orodje namesto popačenega besedila prikaže kot šestnajstiško vrednost.
Standardni Base64 uporablja + in /, ki imata v URL-jih in imenih datotek poseben pomen. Abeceda, varna za URL, iz 5. razdelka RFC 4648 ju nadomesti z - in _, dopolnilni znaki pa se običajno izpustijo. Natanko to obliko uporabljajo spletni žetoni JSON Web Token. Dekodirnik sprejme obe abecedi in manjkajoče dopolnilne znake, zato lahko prilepite katero koli.
Kodiranje datotek in slik
Izberite datoteko in orodje jo prebere lokalno s FileReader ter vrne njen Base64 ali popoln URL data: z vrsto MIME datoteke, pripravljen za prilepitev v oznako img ali ozadje CSS. Vdelane slike prihranijo en zahtevek HTTP, vendar so za tretjino večje in jih ni mogoče ločeno predpomniti, zato so primerne za majhne ikone, ne za fotografije. Za slike s predogledom in pripravljenimi izseki HTML in CSS uporabite Slika v Base64.
Pogosto zastavljena vprašanja
- Zakaj je izhod Base64 daljši od vhoda?
- Vsaki 3 bajti postanejo 4 znaki, zato je izhod velik približno 4/3 vhoda, poleg tega do dva dopolnilna znaka. Besedilo, ki ni ASCII, je še daljše, ker UTF-8 uporablja od dva do štiri bajte na znak.
- Kaj pomenijo znaki = na koncu?
- Dopolnilo. Zaradi njih je dolžina izhoda večkratnik števila štiri, kadar dolžina vhoda ni večkratnik števila tri. En znak = pomeni, da je imela zadnja skupina dva bajta, dva znaka = pa, da je imela en bajt.
- Zakaj dekodiranje javi napako zaradi neveljavnega znaka?
- Vhod vsebuje nekaj zunaj abecede, na primer presledek znotraj besede, narekovaj ali znak % iz kodiranja URL. Prelomi vrstic in manjkajoče dopolnilo so dovoljeni, drugi znaki pa ne.
- Ali je varno geslo kodirati v Base64?
- Base64 ne nudi nobene zaščite. Osnovna overitev HTTP Basic pošilja user:password v Base64, zato jo smete uporabljati le prek HTTPS. Za zaščito skrivnosti uporabite pravo šifriranje ali zgoščevanje.
- Kakšna je razlika med Base64 in Base64url?
- Samo dva znaka in dopolnilo: Base64url uporablja - in _ namesto + in / ter običajno izpusti =, zato je rezultat mogoče uporabiti v URL-jih in imenih datotek brez ubežnih zaporedij.