Base64 kodirnik in dekodirnik - Brezplačno spletno orodje za pretvorbo Base64
Brezplačno orodje za kodiranje in dekodiranje base64. Takoj pretvorite besedilo v Base64 ali dekodirirajte Base64 nize. Podpira standardno in URL-varno kodiranje. Prijava ni potrebna.
Base64 kodirnik/dekodirnik
Pretvorba besedila v Base64 kodiranje in obratno
Dokumentacija
Kaj je kodiranje Base64?
Base64 je način pretvorbe poljubnih podatkov, vključno z binarnimi podatki, kot so slike, v navadno besedilo, sestavljeno samo iz črk, števk in nekaj simbolov. Kodirnik base64 podatke pretvori v to besedilno obliko. Dekodirnik base64 jih pretvori nazaj v izvirne podatke. Programi uporabljajo Base64 za varen prenos binarnih podatkov prek sistemov, kot sta e-pošta ali JSON, ki pričakujejo navadno besedilo.
Base64 uporablja abecedo s 64 znaki:
- Velike črke A–Z (26 znakov)
- Male črke a–z (26 znakov)
- Števke 0–9 (10 znakov)
- Dva simbola, običajno
+in/(2 znaka)
Nekateri sistemi na koncu izhoda uporabljajo tudi enačaj (=) kot dopolnitev. Dopolnitev ni del abecede s 64 znaki; le zapolni dolžino.
Zakaj Base64 obstaja
Številni starejši besedilni protokoli, vključno z e-pošto (SMTP) in nekaterimi deli HTTP, so bili zasnovani za prenos 7-bitnega besedila ASCII. Surovi binarni bajti, na primer bajti znotraj slike JPEG, se lahko pri tem poškodujejo. Base64 se temu izogne tako, da vsak bajt predstavi samo z varnimi, izpisljivimi znaki. Zato priponke e-pošte, slike, vstavljene v spletne strani, in binarna polja znotraj JSON-a običajno najprej potujejo skozi Base64.
Base64 ni stiskanje in ni šifriranje. Kodirani izhod je vedno večji od vhoda, dekodira pa ga lahko vsakdo brez gesla ali ključa.
Kako uporabljati to orodje
- V vnosno polje vnesite ali prilepite besedilo.
- Izberite »Encode to Base64«, da besedilo pretvorite v Base64, ali »Decode from Base64«, da niz Base64 pretvorite nazaj v besedilo.
- Vklopite sprotno pretvarjanje, da se izhod med tipkanjem samodejno posodablja.
- Rezultat kopirajte z gumbom za kopiranje.
Orodje bere in zapisuje standardno besedilo Unicode, zato pravilno kodira in dekodira naglašene črke, simbole in čustvene simbole, ne le navadnih angleških črk.
Kako deluje kodiranje Base64
Base64 vsake 3 bajte vhoda (24 bitov) pretvori v 4 izhodne znake (vsak vsebuje 6 bitov), ker je 24 deljeno s 6 enako 4.
- Vhodne bajte v zapišite v binarni obliki.
- Bite združite v skupine po 24 bitov (3 bajtov).
- Vsako skupino 24 bitov razdelite na štiri dele po 6 bitov.
- Vsako 6-bitno število (od 0 do 63) poiščite v abecedi Base64 in zapišite ustrezni znak.
Če dolžina vhoda ni večkratnik 3, je zadnja skupina krajša. Kodirnik jo dopolni z ničelnimi biti, nato pa izhodu doda znake =, tako da je rezultat še vedno razdeljen v skupine po 4:
- En preostali bajt ustvari 2 znaka Base64 in
==. - Dva preostala bajta ustvarita 3 znake Base64 in en znak
=.
Primer kodiranja Base64
Kodiranje besede »Hello«:
- Vrednosti ASCII: 72, 101, 108, 108, 111
- Binarno:
01001000 01100101 01101100 01101100 01101111 - Prve 3 bajte (24 bitov) razdelimo v štiri skupine po 6 bitov:
010010 000110 010101 101100, ki so števila 18, 6, 21 in 44 → znakiS,G,V,s. - Preostala 2 bajta (16 bitov) razdelimo v tri skupine po 6 bitov, na koncu pa dodamo 2 ničelna bita:
011011 000110 111100, ki so števila 27, 6 in 60 → znakib,G,8. - Ker sta ostala 2 bajta, se na koncu doda en znak
=. - Rezultat:
SGVsbG8=
Dekodiranje te korake obrne: vsak znak se preslika nazaj v svoje 6-bitno število, biti se združijo v tok, ta tok pa se znova prebere v 8-bitnih bajtih.
Formula za dolžino kodiranega niza Base64
Pri vhodu z n bajti je dolžina kodiranega niza v znakih:
encoded_length = 4 × ⌈n / 3⌉
kjer ⌈x⌉ pomeni zaokrožitev navzgor na najbližje celo število. Formula pokaže, zakaj je izhod Base64 vedno približno za tretjino večji od vhoda: 4 izhodni znaki na vsakih 3 vhodnih bajtov pomenijo povečanje za 33 %.
Kje se uporablja Base64
- E-poštne priponke (MIME). E-pošta je bila zasnovana za besedilo, zato se datotečne priponke pred pošiljanjem pretvorijo v Base64, zaradi česar je pripeta datoteka približno za 33 % večja od izvirnika.
- Podatkovni URI-ji. Majhne slike je mogoče v HTML ali CSS vdelati neposredno kot besedilo, na primer
data:image/png;base64,iVBORw0KGgo..., s čimer se izognemo ločeni zahtevi za datoteko. To je najprimernejše za majhne datoteke, saj velike povečajo stran in jih ni mogoče ločeno predpomniti. - API-ji in JSON. JSON nima izvornega načina za shranjevanje surovih binarnih podatkov, zato se binarne datoteke, poslane prek API-ja JSON, pogosto najprej kodirajo v Base64.
- Osnovno preverjanje pristnosti HTTP. Glava
Authorizationkodira uporabniško ime in geslo v Base64, na primerAuthorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=. To samo po sebi ni varno; poverilnice lahko prebere vsakdo, ki jih prestreže, zato naj se osnovno preverjanje pristnosti uporablja samo prek HTTPS. - Spletni žetoni JSON (JWT). Vsak od treh delov žetona JWT je kodiran z Base64URL, različico, ki jo je varno umestiti v URL.
- Shranjevanje binarnih podatkov kot besedilo. Podatkovne zbirke ali konfiguracijske datoteke, ki sprejemajo samo besedilo, včasih hranijo binarne podatke kot niz Base64.
Base64 v primerjavi z drugimi kodiranji
Base64, varen za URL-je, standardna znaka + in / nadomesti z znakoma - in _, ker imata + in / v URL-ju poseben pomen. Uporablja se za JWT-je, parametre poizvedbe URL-jev in imena datotek. To orodje ustvari standardni izhod Base64; pretvorba v obliko, varno za URL-je, zahteva le zamenjavo teh dveh znakov.
Base32 uporablja abecedo z 32 znaki, zato vsak znak vsebuje 5 bitov namesto 6. Vsakih 5 bajtov pretvori v 8 znakov, kar pomeni pribitek 60 % (8 ÷ 5 = 1,6), v primerjavi s 33 % pri Base64. Base32 se uporablja, kadar je treba izhod ročno vtipkati ali prebrati po telefonu, saj se izogne velikim in malim črkam ter zlahka zamenljivim znakom.
Šestnajstiški zapis uporablja 16 znakov (0–9, A–F) in potrebuje 2 znaka na bajt, s čimer podvoji velikost (pribitek 100 %). Pogost je pri prikazu zgoščenih vrednosti, barv in naslovov MAC, kjer je berljivost pomembnejša od majhne velikosti.
Kdaj ne uporabljati Base64
Base64 poveča velikost in obremenitev procesorja, zato ni primeren za velike datoteke, poslane prek omrežja; neposredno pošiljanje surovih binarnih podatkov je manjše in hitrejše. Nanj se nikoli ne bi smeli zanašati pri skrivanju občutljivih podatkov, kot so gesla ali ključi API, saj za dekodiranje ni potrebna nobena skrivnost. Za shranjevanje velikih datotek je običajno primernejši binarni stolpec podatkovne zbirke ali storitev za shranjevanje datotek kot dolg niz Base64 v besedilnem polju.
Pogoste napake
- Preskakovanje pretvorbe UTF-8. Besedilo z naglašenimi črkami ali čustvenimi simboli se lahko pri kodiranju brez predhodne pretvorbe v bajte UTF-8 poškoduje.
- Odstranjevanje dopolnitve. Nekateri sistemi odstranijo končne znake
=. Večina dekodirnikov lahko še vedno deluje, če se dolžina niza dopolni nazaj do večkratnika 4, vendar jih tega ne sprejmejo vsi, zato je varneje dopolnitev ohraniti. - Preostali prelomi vrstic. Starejši kodirniki na osnovi MIME vstavijo prelom vrstice vsakih 76 znakov; večina sodobnih dekodirnikov pričakuje en neprekinjen niz brez njih.
- Zamenjava različic. Standardni Base64 in Base64, varen za URL-je, uporabljata različna znaka na istih dveh mestih v abecedi; dekodiranje z napačno različico ustvari nesmiselne podatke ali napako.
Pogosta vprašanja
Ali je Base64 oblika šifriranja? Ne. Gre za reverzibilno besedilno kodiranje, ne za šifriranje. Vsakdo lahko niz Base64 takoj dekodira brez gesla. Če morajo podatki ostati skrivni, uporabite šifrirni algoritem, kot je AES.
Zakaj Base64 poveča podatke? Ker porabi en celoten znak za prenos le 6 bitov, medtem ko surovi bajt vsebuje 8 bitov. Pretvorba 3 bajtov (24 bitov) v 4 znake pomeni, da je izhod velik 4/3 oziroma približno 33 % večji od vhoda.
Ali lahko Base64 kodira slike in druge binarne datoteke? Da. Vsako binarno datoteko, vključno s slikami, PDF-ji in zvočnimi datotekami, je mogoče kodirati v Base64 in jo nato dekodirati nazaj bajt za bajtom. To se pogosto uporablja za majhne slike, vdelane v HTML ali CSS, vendar je za velike datoteke slaba izbira.
Kakšna je razlika med Base64 in Base64URL?
Base64URL standardna znaka + in / nadomesti z znakoma - in _, zato je rezultat varen za umestitev v URL ali ime datoteke brez dodatnega ubeževanja. JWT-ji zaradi tega uporabljajo Base64URL.
Zakaj se pri dekodiranju mojega niza Base64 pojavi napaka »neveljavno«?
Najpogostejši vzroki so znaki, ki ne spadajo v abecedo Base64, na primer - in _, ki ju uporablja različica, varna za URL-je, ali niz, katerega dolžina je za ena večja od večkratnika 4. Noben veljaven niz Base64 nima takšne dolžine. Dekodiranje prav tako ne uspe, kadar dekodirani bajti niso veljavno besedilo UTF-8. To orodje prezre presledke in prelome vrstic v nizu ter še vedno dekodira niz, iz katerega je bila odstranjena končna dopolnitev =.
Od kod izvira Base64? Tehnika sega v zgodnje načine pošiljanja binarnih podatkov prek besedilnih poštnih sistemov v 1980. letih, formalno pa je bila standardizirana kot del MIME v RFC 2045 leta 1996. Trenutna referenčna specifikacija za Base64, Base32 in Base16 je RFC 4648.