Tech Help

Base64 nije šifriranje: šta 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 sistemi mogu sačuvati ili poslati.

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

Ne koristite Base64 da štitite lozinke, API ključeve, tokene pristupa, privatne poruke ili druge tajne. 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.

Šta Base64 zapravo radi?

Base64 kodira binarne podatke ograničenim ASCII skupom: A–Z, a–z, 0–9, + i /. Dopuna = može se pojaviti da dužina izlaza ostane umnožak 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 ponovo dobijate Hello. Tom odlasku i povratku ne treba ključ.

  • Izvorni podaci
  • Hello
  • Kodirati Base64
  • SGVsbG8=
  • Dekodirati Base64
  • Hello
Base64 je reverzibilan dekodiranjem. Ko 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šifrovati. Sistemi javnog ključa također koriste ključeve; recite «odgovarajući kriptografski ključ», ne «jedna dijeljena tajna za svaku vrstu šifriranja». Heširanje je treća ideja: sažetak, ne reverzibilno kodiranje.

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

Tri različita posla:

Metod Glavna svrha Tajna potrebna
Base64 Kodirati podatke kao tekst Ne
Šifriranje Štititi povjerljivost Da / ključni materijal
Heširanje Jednosmjerni sažetak Bez dešifrovanja

Da li je 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 zavisi od okolnog sistema i kontrola.

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 ih ne štiti. Ko dobije kodirani niz, obično ga može dekodirati. Koristite pravo čuvanje tajni i šifriranje kada povjerljivost važi.

Zašto se Base64 koristi ako nije šifriranje?

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

Zašto Base64 uvećava podatke?

Standardni Base64 sa dopunom mapira 3 ulazna bajta na 4 znaka. Dužina 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 sačuvanu ili poslanu veličinu. Base64 ne komprimuje podatke.

Šta 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 zavise od specifikacije. Ovaj alat nije JWT dekoder.

Može li Base64 kodirati slike i datoteke?

Da. Slike, PDF i drugi binarni fajlovi mogu postati tekstualna reprezentacija Base64. Base64 te fajlove ne komprimuje. Kodirani tekst je obično veći od sirovih bajtova.

Šta je Data URL sa Base64?

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

data:image/png;base64,...

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

Kodiranje naspram šifriranja naspram heširanja

Kodiranje (uključujući Base64) služi predstavljanju i reverzibilno je bez tajne. Šifriranje služi povjerljivosti i uključuje kriptografski ključni materijal. Heširanje daje sažetak koji je generalno osmišljen kao jednosmjeran. Dužina izlaza zavisi od algoritma—SHA-256 i SHA-512 nisu iste veličine. Generisanje heša SHA može pokazati te sažetke; ne šifrira i ne zamjenjuje Base64.

Česte greške sa Base64

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

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

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

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

Pomiješati Base64 sa Base64URL
Azbuke 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 Unikod tekst može praviti probleme sa Base64?

Base64 radi na bajtovima, ne na znacima. Tekst mora prvo postati bajtovi—obično UTF-8. Korejski, japanski, arapski i emoji trebaju taj korak. Preglednički btoa() na Unikod 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 katanac

Base64 ne daje povjerljivost. Ko ima kodiranu vrijednost, obično je može dekodirati. Ne tretirajte 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 ignorišu; 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 dešava se u vašem pregledniku. Tekst ili datoteka se ne šalju na NEXNARA server za ovaj alat. Reklame i druge funkcije sajta 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

Da li je Base64 šifriranje?

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

Da li je Base64 siguran?

Base64 nije mehanizam sigurnosti. To je obično kodiranje. Ko ima tekst, obično ga može dekodirati. Sigurnost zavisi od ostatka sistema.

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 sa dopunom (dužina 4 × ceil(n / 3)). To je grubo 33% više za veliki sirovi teret. Dopuna može promijeniti odnos na veoma 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 azbuke.

Može li Base64 kodirati slike i datoteke?

Da. Rezultat je tekst, ne manja datoteka. Koristite režim datoteke u Kodiranje Base64 za sirovi Base64 ili Data URL. Datoteka ostaje u pregledniku.