Base64 Kodirnik Dekodirnik - Besplatni Online Base64 Pretvarač Alat
Besplatni base64 kodirnik dekodirnik alat. Pretvorite tekst u Base64 ili dekodirirajte Base64 nizove trenutno. Podržava standardno i URL-sigurno kodiranje. Prijava nije potrebna.
Base64 Kodirnik/Dekodirnik
Pretvorba teksta u i iz Base64 kodiranja
Dokumentacija
Što je kodiranje Base64?
Base64 je način pretvaranja bilo kakvih podataka, uključujući binarne podatke poput slika, u običan tekst sastavljen samo od slova, znamenki i nekoliko simbola. Base64 kodirnik pretvara podatke u taj tekstualni oblik. Base64 dekodirnik vraća ih u izvorne podatke. Programi upotrebljavaju Base64 za siguran prijenos binarnih podataka kroz sustave, poput e-pošte ili JSON-a, koji očekuju običan tekst.
Base64 upotrebljava abecedu od 64 znakova:
- Velika slova A–Z (26 znakova)
- Mala slova a–z (26 znakova)
- Znamenke 0–9 (10 znakova)
- Dva simbola, obično
+i/(2 znaka)
Neki sustavi na kraju izlaza upotrebljavaju i znak jednakosti (=) kao dopunu. Dopuna nije dio abecede od 64 znakova; ona samo popunjava duljinu.
Zašto Base64 postoji
Mnogi stariji tekstualni protokoli, uključujući e-poštu (SMTP) i neke dijelove HTTP-a, izgrađeni su za prijenos 7-bitnog ASCII teksta. Mogu oštetiti izvorne binarne bajtove, poput bajtova unutar JPEG slike. Base64 to izbjegava prikazivanjem svakog bajta samo sigurnim, ispisivim znakovima. Zato privitci e-pošte, slike ugrađene u web-stranice i binarna polja unutar JSON-a obično prvo prolaze kroz Base64.
Base64 nije kompresija ni šifriranje. Kodirani je izlaz uvijek veći od ulaza i svatko ga može dekodirati bez lozinke ili ključa.
Kako upotrebljavati ovaj alat
- Upišite ili zalijepite tekst u polje za unos.
- Odaberite „Encode to Base64” za pretvaranje teksta u Base64 ili „Decode from Base64” za pretvaranje Base64 niza natrag u tekst.
- Uključite pretvorbu uživo kako bi se izlaz automatski ažurirao tijekom tipkanja.
- Kopirajte rezultat gumbom za kopiranje.
Alat čita i zapisuje standardni Unicode tekst, pa se slova s dijakriticima, simboli i emoji mogu ispravno kodirati i dekodirati, a ne samo obična engleska slova.
Kako funkcionira kodiranje Base64
Base64 pretvara svaka 3 bajta ulaza (24 bita) u 4 izlazna znaka (od kojih svaki sadržava 6 bitova), jer je 24 podijeljeno s 6 jednako 4.
- Ulazne bajtove pretvorite u binarni zapis.
- Grupirajte bitove u blokove od 24 bita (3 bajta).
- Svaki blok od 24 bita podijelite na četiri dijela od 6 bitova.
- Svaki broj od 6 bitova (od 0 do 63) pronađite u abecedi Base64 i zapišite odgovarajući znak.
Ako duljina ulaza nije višekratnik od 3, posljednji je blok kraći. Koder ga dopunjuje nulama, a zatim izlazu dodaje znakove = kako bi rezultat i dalje dolazio u skupinama od 4:
- Jedan preostali bajt daje 2 Base64 znaka i
==. - Dva preostala bajta daju 3 Base64 znaka i jedan znak
=.
Primjer kodiranja Base64
Kodiranje riječi „Hello”:
- ASCII vrijednosti: 72, 101, 108, 108, 111
- Binarno:
01001000 01100101 01101100 01101100 01101111 - Prva 3 bajta (24 bita) dijele se na četiri skupine od 6 bitova:
010010 000110 010101 101100, što su brojevi 18, 6, 21, 44 → znakoviS,G,V,s. - Preostala 2 bajta (16 bitova) dijele se na tri skupine od 6 bitova, uz dodana 2 nul-bita na kraju:
011011 000110 111100, što su brojevi 27, 6, 60 → znakovib,G,8. - Budući da su preostala 2 bajta, na kraj se dodaje jedan znak
=. - Rezultat:
SGVsbG8=
Dekodiranje obrće te korake: svaki se znak preslikava natrag u svoj broj od 6 bitova, bitovi se spajaju u tok, a taj se tok ponovno čita u bajtovima od 8 bitova.
Formula za duljinu kodiranog Base64 niza
Za ulaz od n bajtova, duljina kodiranog niza u znakovima iznosi:
encoded_length = 4 × ⌈n / 3⌉
gdje ⌈x⌉ znači zaokruživanje na veći cijeli broj. Formula pokazuje zašto je izlaz Base64 uvijek približno za trećinu veći od ulaza: 4 izlazna znaka na svaka 3 ulazna bajta predstavljaju povećanje od 33 %.
Gdje se Base64 upotrebljava
- Privitci e-pošte (MIME). E-pošta je izgrađena za tekst, pa se privitci datoteka prije slanja pretvaraju u Base64, zbog čega je priložena datoteka približno 33 % veća od izvornika.
- Podatkovni URI-ji. Male slike mogu se izravno ugraditi u HTML ili CSS kao tekst, primjerice
data:image/png;base64,iVBORw0KGgo..., čime se izbjegava zaseban zahtjev za datotekom. To najbolje funkcionira s malim datotekama jer velike povećavaju stranicu i ne mogu se zasebno predmemorirati. - API-ji i JSON. JSON nema izvorni način za pohranu sirovih binarnih podataka, pa se binarne datoteke poslane putem JSON API-ja često najprije kodiraju u Base64.
- HTTP Basic autentikacija. Zaglavlje
Authorizationkodira korisničko ime i lozinku kao Base64, primjericeAuthorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=. To samo po sebi nije sigurno; vjerodajnice može pročitati svatko tko ih presretne, pa se osnovna autentikacija treba upotrebljavati samo preko HTTPS-a. - JSON web-tokeni (JWT). Svaki od tri dijela JWT-a kodira se pomoću Base64URL-a, inačice sigurne za smještanje unutar URL-a.
- Pohrana binarnih podataka kao tekst. Baze podataka ili konfiguracijske datoteke koje prihvaćaju samo tekst ponekad pohranjuju binarne podatke kao Base64 niz.
Usporedba Base64 s drugim kodiranjima
Base64 za URL zamjenjuje standardne znakove + i / znakovima - i _ jer + i / imaju posebno značenje unutar URL-a. Upotrebljava se za JWT-ove, parametre upita URL-a i nazive datoteka. Ovaj alat proizvodi standardni izlaz Base64; pretvaranje u oblik za URL zahtijeva samo zamjenu tih dvaju znakova.
Base32 upotrebljava abecedu od 32 znaka, pa svaki znak sadržava 5 bitova umjesto 6. Pretvara svakih 5 bajtova u 8 znakova, uz povećanje od 60 % (8 ÷ 5 = 1,6), u usporedbi s 33 % kod Base64. Base32 se odabire kada se izlaz mora ručno upisivati ili čitati preko telefona jer izbjegava kombinaciju velikih i malih slova te lako zamjenjive znakove.
Heksadecimalni zapis upotrebljava 16 znakova (0–9, A–F) i zahtijeva 2 znaka po bajtu, čime udvostručuje veličinu (povećanje od 100 %). Uobičajen je za prikaz hash-vrijednosti, boja i MAC adresa, gdje je čitljivost važnija od male veličine.
Kada ne upotrebljavati Base64
Base64 povećava veličinu i troši procesorsko vrijeme, pa nije prikladan za velike datoteke koje se šalju mrežom; izravno slanje sirovih binarnih podataka manje je i brže. Na njega se nikad ne treba oslanjati za skrivanje osjetljivih podataka poput lozinki ili API ključeva jer za dekodiranje nije potrebna tajna. Za pohranu velikih datoteka obično je bolji binarni stupac baze podataka ili usluga za pohranu datoteka nego dugačak Base64 niz u tekstualnom polju.
Uobičajene pogreške
- Preskakanje pretvorbe UTF-8. Kodiranje teksta s naglašenim slovima ili emojijima bez prethodnog pretvaranja u bajtove UTF-8 može oštetiti izlaz.
- Uklanjanje dopune. Neki sustavi uklanjaju završne znakove
=. Većina dekodera i dalje može raditi ako se duljina niza ponovno dopuni do višekratnika od 4, ali ne prihvaćaju to svi, pa je sigurnije zadržati dopunu. - Preostali prijelomi redaka. Stariji koderi temeljeni na MIME-u umeću prijelom retka svakih 76 znakova; većina suvremenih dekodera očekuje jedan neprekinuti niz bez njih.
- Miješanje inačica. Standardni Base64 i Base64 siguran za URL upotrebljavaju različite znakove za ista dva mjesta u abecedi; dekodiranje pogrešnom inačicom daje besmislene podatke ili pogrešku.
Često postavljana pitanja
Je li Base64 oblik šifriranja? Ne. To je reverzibilno kodiranje teksta, a ne šifriranje. Svatko može odmah dekodirati Base64 niz bez lozinke. Ako podaci moraju ostati tajni, upotrijebite algoritam za šifriranje kao što je AES.
Zašto Base64 povećava podatke? Zato što troši cijeli znak za prijenos samo 6 bitova, dok sirovi bajt sadržava 8 bitova. Pretvaranje 3 bajta (24 bita) u 4 znaka znači da je izlaz 4/3, odnosno približno 33 %, veći od ulaza.
Može li Base64 kodirati slike i druge binarne datoteke? Da. Svaka binarna datoteka, uključujući slike, PDF datoteke i audiozapise, može se kodirati u Base64 i dekodirati natrag bajt po bajt. To se često upotrebljava za male slike ugrađene u HTML ili CSS, ali nije prikladno za velike datoteke.
Koja je razlika između Base64 i Base64URL-a?
Base64URL zamjenjuje standardne znakove + i / znakovima - i _, pa je rezultat siguran za smještanje u URL ili naziv datoteke bez dodatnog kodiranja. JWT-ovi zbog toga upotrebljavaju Base64URL.
Zašto moj Base64 niz pri dekodiranju daje pogrešku „neispravan”?
Najčešći su uzroci znakovi koji ne pripadaju abecedi Base64, poput - i _ koje upotrebljava inačica sigurna za URL, ili niz čija je duljina za jedan veća od višekratnika od 4. Nijedan valjani Base64 niz nema takvu duljinu. Dekodiranje također ne uspijeva kada dekodirani bajtovi nisu valjan tekst UTF-8. Ovaj alat zanemaruje razmake i prijelome redaka unutar niza te i dalje dekodira niz kojem je uklonjena završna dopuna =.
Odakle potječe Base64? Tehnika potječe iz ranih postupaka slanja binarnih podataka kroz poštanske sustave koji su prenosili samo tekst, tijekom 1980-ih, a formalno je standardizirana kao dio MIME-a u RFC-u 2045 godine 1996. Trenutačna referentna specifikacija za Base64, Base32 i Base16 jest RFC 4648.