bitlvl
SR

Base64 kodiranje / dekodiranje

Nalepite tekst ili Base64 u bilo koje polje; drugo se ažurira. Prevucite datoteku da je kodirate ili dekodirajte Base64 u datoteku. Sve se odvija u vašem pregledaču.

Prevucite datoteku ovde da je kodirate, ili

Rezultati i poruke ovog alata prikazuju se na engleskom.

Čemu služi Base64

Base64 pretvara bilo koje bajtove u tekst koristeći 64 bezbedna znaka: A–Z, a–z, 0–9, + i /. Svaka 3 bajta (24 bita) postaju 4 znaka od po 6 bitova, pa je izlaz za trećinu veći od ulaza. Postoji zato što mnogi kanali, uključujući e-poštu, JSON, XML, HTTP zaglavlja i URL-ove, mogu da prenose samo tekst, a sirovi bajtovi bi bili oštećeni ili pogrešno protumačeni.

  1. Uzmite 3 bajta: 24 bita.
  2. Podelite ih u četiri grupe od 6 bitova (vrednosti 0–63).
  3. Zamenite svaku grupu njenim znakom iz alfabeta.
  4. Ako dužina ulaza nije deljiva sa 3, dopunite poslednju grupu nultim bitovima i dodajte jedan ili dva znaka =.

hi je 0x68 0x69 = 01101000 01101001; pregrupisano kao 011010 000110 1001(00) to je 26, 6, 36 → aGk, plus jedan = za bajt koji nedostaje: aGk=.

Standardni i URL-safe

Znakovi + i / imaju posebno značenje u URL-ovima i imenima datoteka, pa RFC 4648 §5 definiše drugi alfabet koji umesto njih koristi - i _, obično bez paddinga. JWT-ovi, OAuth tokeni i mnogi API-ji koriste ovaj „base64url“ oblik. Dekoder ovde prihvata oba, sa paddingom ili bez njega, i ignoriše prelome redova.

Nije šifrovanje

Base64 ne krije ništa; svako može da ga dekodira istog trenutka. Koristite ga za prenos bajtova, nikada za njihovu zaštitu. Ako u konfiguracionoj datoteci vidite tajnu „kodiranu“ u Base64, tretirajte je kao običan tekst.

Kodiranje teksta

Base64 radi nad bajtovima, pa tekst prvo mora da se pretvori u bajtove. Ovaj alat koristi UTF-8, što očekuju veb API-ji, JSON i gotovo sav moderan softver. Dekodirani rezultat koji nije ispravan UTF-8 prikazuje se kao heks umesto kao besmisleni znakovi.

Pitanja

Zašto se moj Base64 završava sa = ili ==?

Padding. Dužina ulaza nije bila deljiva sa 3 bajta, pa je poslednji blok dopunjen. Jedan = znači da su u poslednjoj grupi bila dva bajta; == znači jedan. Mnogi dekoderi prihvataju unos bez paddinga, a URL-safe varijanta ga obično izostavlja.

Da li je Base64 bezbedan?

Ne. To je kodiranje, a ne šifrovanje; svako može da ga obrne. Štiti podatke od oštećenja u prenosu, a ne od čitanja.

Koliko Base64 uvećava datoteku?

Oko 33% (4 izlazna bajta na svaka 3 ulazna), plus do 3% više ako se redovi prelamaju za MIME.

Zašto je moj dekodirani tekst besmislen?

Obično podaci uopšte nisu bili tekst (slika, kompresovani blob), ili je tekst bio u kodiranju različitom od UTF-8. Pogledajte heks prikaz: 89 50 4E 47 na početku je PNG, 1F 8B je gzip, 25 50 44 46 je PDF.

Šta je data: URL?

URL koji sadrži samu datoteku, npr. data:image/png;base64,iVBOR… Omogućava ugrađivanje malih slika ili fontova direktno u HTML ili CSS. Enkoder vam ga daje kad prevučete datoteku.

Da li ovaj alat otprema moju datoteku?

Ne. Datoteku čita JavaScript u vašem pregledaču i nikuda je ne šalje. Osvežite stranicu i nestaje.