Tech Help

Base64 nije šifriranje: što zapravo radi

Base64 je kodiranje, ne šifriranje. Zašto ne skriva lozinke, zašto raste veličina i kako ga dekodirati.

Kratak odgovor

Base64 je kodiranje, ne šifriranje. Pretvara binarne podatke u tekstualni oblik koji tekstualni sustavi mogu spremiti ili poslati.

Tko ima tekst Base64, obično ga može dekodirati. Lozinka ili tajni ključ nisu potrebni.

Nemojte koristiti Base64 za zaštitu lozinki, API ključeva, tokena pristupa, privatnih poruka ili drugih tajni. To je alat za predstavljanje, ne mehanizam sigurnosti.

Ako niz izgleda zbrkano, to ne znači da je šifriran. Base64 samo mijenja kako se bajtovi pišu kao tekst.

Što Base64 zapravo radi?

Base64 kodira binarne podatke ograničenim ASCII skupom: A–Z, a–z, 0–9, + i /. Dopuna = može se pojaviti da duljina izlaza ostane višekratnik od 4. Dopuna nije uvijek tu—kratki ulazi mogu koristiti jedno ili dva =, a neki formati je izostavljaju.

Hello

Hello

Base64

SGVsbG8=

Dekodirajte SGVsbG8= i ponovno dobivate Hello. Tom odlasku i povratku ne treba ključ.

  • Izvorni podaci
  • Hello
  • Kodirati Base64
  • SGVsbG8=
  • Dekodirati Base64
  • Hello
Base64 je reverzibilan dekodiranjem. Tko ima tekst, obično to može.

Base64 naspram šifriranja: koja je razlika?

Base64 služi predstavljanju i kompatibilnosti. Ne skriva sadržaj. Šifriranje služi povjerljivosti i koristi kriptografski ključni materijal. Dekodirati Base64 nije dešifrirati. Sustavi javnog ključa također koriste ključeve; recite «odgovarajući kriptografski ključ», ne «jedna dijeljena tajna za svaku vrstu šifriranja». Hashiranje je treća ideja: sažetak, ne reverzibilno kodiranje.

  • Kodiranje
  • Bez tajnog ključa
  • Reverzibilno za svakoga
  • Šifriranje
  • Kriptografska zaštita
  • Treba pravi ključ za dešifriranje
Kodiranje mijenja predstavljanje. Šifriranje teži da sadržaj ostane povjerljiv.

Tri različita posla:

Metoda Glavna svrha Tajna potrebna
Base64 Kodirati podatke kao tekst Ne
Šifriranje Štititi povjerljivost Da / ključni materijal
Hashiranje Jednosmjerni sažetak Bez dešifriranja

Je li Base64 siguran?

Base64 sam po sebi ne daje povjerljivost. Tekst može izgledati neproziran, ali to nije sigurnosna funkcija. Običan dekoder vraća bajtove. To ne znači da je «Base64 nesiguran» kao tehnologija. To je obično kodiranje. Nije mehanizam sigurnosti. Sigurnost ovisi o okolnom sustavu i kontrolama.

Mogu li sakriti lozinku ili API ključ pomoću Base64?

Ne, ne kao zaštitu. Kodirati lozinku, API ključ, token pristupa ili privatne podatke kao Base64 ne štiti ih. Tko dobije kodirani niz, obično ga može dekodirati. Koristite pravo čuvanje tajni i šifriranje kada povjerljivost vrijedi.

Zašto se Base64 koristi ako nije šifriranje?

Sustavi koji očekuju tekst često ne mogu nositi sirove binarne podatke. Base64 služi da predstavi binarno u tekstualnim formatima, ugradi male binarne resurse, pomakne bajtove kroz kanale samo za tekst, sagradi Data URL, pojavi se u nekim email/MIME kontekstima i popuni API teret kada shema traži Base64. API ga ne koriste «zbog sigurnosti». Koriste ga zbog kompatibilnosti.

Zašto Base64 uvećava podatke?

Standardni Base64 s dopunom mapira 3 ulazna bajta na 4 znaka. Duljina je 4 × ceil(n / 3), gdje je n broj ulaznih bajtova. Tri bajta postaju 4 znaka; šest postaju 8. To je grubo 33% veće—oko trećine—za veliki sirovi teret. Mali ulazi mogu izgledati drugačije zbog dopune: jedan bajt postaje QQ== (4 znaka). JSON navodnici, prefiks Data URL, kompresija ili dodatno transportno kodiranje mogu još promijeniti spremljenu ili poslanu veličinu. Base64 ne komprimira podatke.

Što je Base64URL?

Base64URL je varijanta istog kodiranja sigurna za URL i imena datoteka—nije šifriranje. + postaje -, / postaje _, a dopuna se često izostavlja. Kodiranje Base64 može kodirati i dekodirati standardni Base64 i Base64URL. Pravila dopune ovise o specifikaciji. Ovaj alat nije JWT dekoder.

Može li Base64 kodirati slike i datoteke?

Da. Slike, PDF i druge binarne datoteke mogu postati tekstualna reprezentacija Base64. Base64 te datoteke ne komprimira. Kodirani tekst obično je veći od sirovih bajtova.

Što je Data URL s Base64?

Data URL može spojiti vrstu medija, oznaku kodiranja i kodirane bajtove u jedan niz:

data:image/png;base64,...

Zgodno je za male resurse. Staviti veliku datoteku u Data URL nije uvijek dobra ideja: niz raste i stranice mogu usporiti. Tretirajte to kao kompromis, ne kao zadano.

Kodiranje naspram šifriranja naspram hashiranja

Kodiranje (uključujući Base64) služi predstavljanju i reverzibilno je bez tajne. Šifriranje služi povjerljivosti i uključuje kriptografski ključni materijal. Hashiranje daje sažetak koji je općenito osmišljen kao jednosmjeran. Duljina izlaza ovisi o algoritmu—SHA-256 i SHA-512 nisu iste veličine. Generiranje hasha SHA može pokazati te sažetke; ne šifrira i ne zamjenjuje Base64.

Česte pogreške s Base64

Tretirati Base64 kao šifriranje
Samo mijenja kako bajtovi izgledaju kao tekst.

Čuvati tajne kao običan Base64
Kodiranu vrijednost može dekodirati tko je ima.

Pretpostaviti da Base64 komprimira podatke
Ne komprimira. Tekstualni oblik obično je veći.

Zaboraviti rast veličine
Planirajte grubo trećinu više na velikim sirovim teretima.

Pomiješati Base64 s Base64URL
Abecede se razlikuju. Dekoder može odbiti pogrešnu varijantu.

Dekodirati pogrešnim kodiranjem znakova
Base64 vraća bajtove. Tekstu i dalje treba odgovarajuće kodiranje, obično UTF-8.

Pretpostaviti da se = uvijek pojavljuje
Dopuna se koristi kad treba. Neki nizovi je nemaju.

Zašto Unicode tekst može stvarati probleme s Base64?

Base64 radi na bajtovima, ne na znakovima. Tekst mora prvo postati bajtovi—obično UTF-8. Korejski, japanski, arapski i emoji trebaju taj korak. Preglednički btoa() na Unicode nizu može pasti. Kodiranje Base64 kodira UTF-8 bajtove, pa taj tekst ide tamo-ovamo. Ako dekodirate pogrešnim skupom znakova, Base64 može biti ispravan, a slova i dalje izgledati pogrešno.

Nije lokot

Base64 ne daje povjerljivost. Tko ima kodiranu vrijednost, obično je može dekodirati. Nemojte tretirati zbrkano izgledajući tekst kao zaštićenu tajnu.

Kodirajte ili dekodirajte Base64 u pregledniku

NEXNARA Kodiranje Base64 pretvara UTF-8 tekst i datoteke lokalno.

Možete kodirati ili dekodirati standardni Base64 i Base64URL, pretvoriti datoteku u sirovi Base64 ili Data URL i vratiti Base64 ili Data URL u preuzimanje. Neispravan ulaz se odbija umjesto da padne. Razmaci se ignoriraju; nedostajuća dopuna se dopunjuje.

Datoteke preko 10 MB mogu usporiti karticu. Datoteke preko 32 MB se ne obrađuju u pregledniku.

Sama obrada Base64 događa se u vašem pregledniku. Tekst ili datoteka se ne šalju na NEXNARA poslužitelj za ovaj alat. Reklame i druge funkcije stranice i dalje koriste mrežu; to je odvojeno od obrade.

Trebate kodirati ili dekodirati Base64? Otvorite Kodiranje Base64 i zalijepite tekst ili spustite datoteku.

FAQ

Je li Base64 šifriranje?

Ne. Base64 je kodiranje. Mijenja predstavljanje. Ne štiti povjerljivost.

Je li Base64 siguran?

Base64 nije mehanizam sigurnosti. To je obično kodiranje. Tko ima tekst, obično ga može dekodirati. Sigurnost ovisi o ostatku sustava.

Može li se Base64 dekodirati bez lozinke?

Da. Dovoljan je standardni dekoder. Samom Base64 ne treba lozinka ni tajni ključ.

Zašto Base64 uvećava veličinu datoteke?

Svaka 3 bajta postaju 4 znaka u standardnom Base64 s dopunom (duljina 4 × ceil(n / 3)). To je grubo 33% više za veliki sirovi teret. Dopuna može promijeniti omjer na vrlo malim ulazima.

Koja je razlika između Base64 i Base64URL?

Base64URL koristi - i _ umjesto + i / i često izostavlja dopunu =. Oba su kodiranja. Kodiranje Base64 podržava obje abecede.

Može li Base64 kodirati slike i datoteke?

Da. Rezultat je tekst, ne manja datoteka. Koristite način datoteke u Kodiranje Base64 za sirovi Base64 ili Data URL. Datoteka ostaje u pregledniku.