Tech Help

Base64 nėra šifravimas: ką jis iš tikrųjų daro

Base64 yra kodavimas, ne šifravimas. Kodėl jis neslepia slaptažodžių, kodėl didėja dydis ir kaip jį dekoduoti.

Trumpas atsakymas

Base64 yra kodavimas, ne šifravimas. Dvejetainius duomenis paverčia tekstine forma, kurią tekstinės sistemos gali saugoti arba siųsti.

Kas turi Base64 tekstą, paprastai gali jį dekoduoti. Slaptažodžio ar slapto rakto nereikia.

Nenaudokite Base64 slaptažodžiams, API raktams, prieigos žetonams, privačioms žinutėms ar kitoms paslaptims saugoti. Tai vaizdavimo įrankis, ne saugos mechanizmas.

Jei eilutė atrodo sujaukta, tai nereiškia, kad ji užšifruota. Base64 tik pakeičia, kaip baitai rašomi tekstu.

Ką Base64 iš tikrųjų daro?

Base64 koduoja dvejetainius duomenis ribotu ASCII rinkiniu: A–Z, a–z, 0–9, + ir /. Užpildas = gali atsirasti, kad išvesties ilgis liktų 4 kartotinis. Užpildo ne visada būna—trumpos įvestys gali naudoti vieną ar du =, o kai kurie formatai jį praleidžia.

Hello

Hello

Base64

SGVsbG8=

Dekoduokite SGVsbG8= ir vėl gausite Hello. Tam kelionei pirmyn atgal rakto nereikia.

  • Pradiniai duomenys
  • Hello
  • Kodavimas Base64
  • SGVsbG8=
  • Dekodavimas Base64
  • Hello
Base64 grįžtamas dekoduojant. Kas turi tekstą, paprastai gali.

Base64 ir šifravimas: koks skirtumas?

Base64 skirtas vaizdavimui ir suderinamumui. Turinys neslepiamas. Šifravimas skirtas konfidencialumui ir naudoja kriptografinę rakto medžiagą. Dekoduoti Base64 nereiškia iššifruoti. Viešojo rakto sistemos irgi naudoja raktus; sakykite «tinkamas kriptografinis raktas», ne «viena bendra paslaptis kiekvienam šifravimui». Maiša yra trečia mintis: santrauka, ne grįžtamas kodavimas.

  • Kodavimas
  • Be slapto rakto
  • Grįžtamas bet kam
  • Šifravimas
  • Kriptografinė apsauga
  • Iššifruoti reikia teisingo rakto
Kodavimas keičia vaizdavimą. Šifravimas siekia turinį laikyti konfidencialų.

Trys skirtingi darbai:

Metodas Pagrindinis tikslas Reikia paslapties
Base64 Kodavimas duomenis kaip tekstą Ne
Šifravimas Saugoti konfidencialumą Taip / rakto medžiaga
Maiša Vienkryptė santrauka Be iššifravimo

Ar Base64 saugus?

Base64 pats savaime neduoda konfidencialumo. Tekstas gali atrodyti nepermatomas, bet tai ne saugos funkcija. Įprastas dekoderis atkuria baitus. Tai nereiškia, kad «Base64 nesaugus» kaip technologija. Tai įprastas kodavimas. Tai ne saugos mechanizmas. Sauga priklauso nuo aplinkinės sistemos ir kontrolės.

Ar galiu slėpti slaptažodį ar API raktą Base64?

Ne, ne kaip apsaugą. Slaptažodžio, API rakto, prieigos žetono ar privačių duomenų kodavimas Base64 jų nesaugo. Kas gauna užkoduotą eilutę, paprastai gali ją dekoduoti. Naudokite tikrą paslapčių saugojimą ir šifravimą, kai konfidencialumas svarbus.

Kodėl Base64 naudojamas, jei tai ne šifravimas?

Sistemos, laukiančios teksto, dažnai negali nešti žalio dvejetainio. Base64 naudojamas dvejetainiui vaizduoti tekstiniuose formatuose, įterpti mažus dvejetainius išteklius, perkelti baitus tik teksto kanalais, kurti Data URL, pasirodyti kai kuriuose el. pašto/MIME kontekstuose ir pildyti API naudingąją apkrovą, kai schema prašo Base64. API jo nenaudoja «dėl saugos». Naudoja dėl suderinamumo.

Kodėl Base64 padidina duomenis?

Standartinis užpildytas Base64 3 įvesties baitus vaizduoja 4 ženklais. Ilgis yra 4 × ceil(n / 3), kur n — įvesties baitų skaičius. Trys baitai tampa 4 ženklais; šeši — 8. Tai apytiksliai 33 % didesnis—apie trečdalį—didelei žaliai apkrovai. Mažos įvestys dėl užpildo gali atrodyti kitaip: vienas baitas tampa QQ== (4 ženklai). JSON kabutės, Data URL priešdėlis, glaudinimas ar papildomas transporto kodavimas gali dar pakeisti saugomą ar siunčiamą dydį. Base64 duomenų neglaudina.

Kas yra Base64URL?

Base64URL yra to paties kodavimo URL ir failų vardams saugi atmaina—ne šifravimas. + tampa -, / tampa _, o užpildas dažnai praleidžiamas. Koduoti Base64 gali koduoti ir dekoduoti standartinį Base64 ir Base64URL. Užpildo taisyklės priklauso nuo specifikacijos. Šis įrankis nėra JWT dekoderis.

Ar Base64 gali koduoti vaizdus ir failus?

Taip. Vaizdai, PDF ir kiti dvejetainiai failai gali tapti Base64 tekstiniu vaizdavimu. Base64 tų failų neglaudina. Užkoduotas tekstas paprastai didesnis už žalius baitus.

Kas yra Base64 Data URL?

Data URL gali vienoje eilutėje surinkti medijos tipą, kodavimo žymę ir užkoduotus baitus:

data:image/png;base64,...

Patogu mažiems ištekliams. Didelį failą dėti į Data URL ne visada gera mintis: eilutė auga ir puslapiai gali lėtėti. Laikykite tai kompromisu, ne numatytuoju.

Kodavimas, šifravimas ir maiša

Kodavimas (įskaitant Base64) skirtas vaizdavimui ir grįžtamas be paslapties. Šifravimas skirtas konfidencialumui ir naudoja kriptografinę rakto medžiagą. Maiša duoda santrauką, paprastai sukurtą kaip vienkryptę. Išvesties ilgis priklauso nuo algoritmo—SHA-256 ir SHA-512 nėra to paties dydžio. Kurti SHA maišą gali parodyti tas santraukas; nesišifruoja ir nepakeičia Base64.

Dažnos Base64 klaidos

Laikyti Base64 šifravimu
Keičia tik tai, kaip baitai atrodo kaip tekstas.

Saugoti paslaptis kaip paprastą Base64
Užkoduotą reikšmę gali dekoduoti tas, kas ją turi.

Tarti, kad Base64 glaudina duomenis
Neglaudina. Tekstinė forma paprastai didesnė.

Pamiršti dydžio augimą
Didelėms žalioms apkrovoms planuokite apie trečdalį daugiau.

Maišyti Base64 su Base64URL
Abėcėlės skiriasi. Dekoderis gali atmesti netinkamą atmainą.

Dekoduoti netinkamu ženklų kodavimu
Base64 atkuria baitus. Tekstui vis tiek reikia atitinkančio kodavimo, paprastai UTF-8.

Tarti, kad = visada atsiranda
Užpildas naudojamas, kai reikia. Kai kurios eilutės jo neturi.

Kodėl Unikodo tekstas gali kelti problemų su Base64?

Base64 veikia su baitais, ne su ženklais. Tekstas pirmiausia turi tapti baitais—paprastai UTF-8. Korėjiečių, japonų, arabų kalboms ir jaustukams reikia to žingsnio. Naršyklės btoa() su Unikodo eilute gali nepavykti. Koduoti Base64 koduoja UTF-8 baitus, todėl tas tekstas eina pirmyn atgal. Jei dekoduojate netinkama ženklų lentele, Base64 gali būti teisingas, o raidės vis tiek atrodyti klaidingos.

Ne spyna

Base64 neduoda konfidencialumo. Kas turi užkoduotą reikšmę, paprastai gali ją dekoduoti. Nelaikykite sujaukto teksto apsaugota paslaptimi.

Kodavimas arba dekodavimas Base64 naršyklėje

NEXNARA Koduoti Base64 lokaliai konvertuoja UTF-8 tekstą ir failus.

Galite koduoti arba dekoduoti standartinį Base64 ir Base64URL, failą paversti žaliu Base64 arba Data URL ir Base64 ar Data URL grąžinti į atsisiuntimą. Netinkama įvestis atmetama, o ne krenta. Tarpai ignoruojami; trūkstamas užpildas papildomas.

Failai virš 10 MB gali sulėtinti skirtuką. Failai virš 32 MB naršyklėje neapdorojami.

Pats Base64 apdorojimas vyksta jūsų naršyklėje. Tekstas ar failas šiam įrankiui nesiunčiami į NEXNARA serverį. Skelbimai ir kitos svetainės funkcijos vis dar naudoja tinklą; tai atskira nuo apdorojimo.

Reikia koduoti arba dekoduoti Base64? Atidarykite Koduoti Base64 ir įklijuokite tekstą arba numeskite failą.

FAQ

Ar Base64 yra šifravimas?

Ne. Base64 yra kodavimas. Keičia vaizdavimą. Nesaugo konfidencialumo.

Ar Base64 saugus?

Base64 nėra saugos mechanizmas. Tai įprastas kodavimas. Kas turi tekstą, paprastai gali jį dekoduoti. Sauga priklauso nuo likusios sistemos.

Ar Base64 galima dekoduoti be slaptažodžio?

Taip. Pakanka standartinio dekoderio. Pačiam Base64 nereikia slaptažodžio ar slapto rakto.

Kodėl Base64 padidina failo dydį?

Kas 3 baitai tampa 4 ženklais standartiniame užpildytame Base64 (ilgis 4 × ceil(n / 3)). Tai apytiksliai 33 % daugiau didelei žaliai apkrovai. Užpildas gali pakeisti santykį labai mažose įvestyse.

Kuo skiriasi Base64 ir Base64URL?

Base64URL vietoj + ir / naudoja - ir _ ir dažnai praleidžia = užpildą. Abu yra kodavimai. Koduoti Base64 palaiko abi abėcėles.

Ar Base64 gali koduoti vaizdus ir failus?

Taip. Rezultatas yra tekstas, ne mažesnis failas. Naudokite failo režimą Koduoti Base64 žaliam Base64 arba Data URL. Failas lieka naršyklėje.