Mitä Base64 on ja miksi se on olemassa
Base64 on binääri-tekstikoodausmenetelmä. Se ottaa raa'at tavut - eli sellaista dataa, josta kuvat, arkistot, salausavaimet tai mikä tahansa muu ei-luettava teksti koostuu - ja kirjoittaa ne uudelleen käyttäen pientä, turvallista 64 tulostettavan merkin aakkostoa: 26 isoa kirjainta A-Z, 26 pientä kirjainta a-z, kymmenen numeroa 0-9 sekä kaksi ylimääräistä symbolia, tavallisesti + ja /. Yhtäläisyysmerkkiä käytetään täytteenä lopussa. Koska jokainen sen tuottama merkki on tavallista ASCII-tekstiä, tulos voi kulkea järjestelmien läpi, jotka on suunniteltu käsittelemään vain tekstiä.
Se on koko syy, miksi Base64 keksittiin. Monet vanhemmat protokollat - sähköposti on klassinen esimerkki - olettavat, että niiden kuljettama sisältö on tekstiä. Jos annat niille raakaa binääridataa, osa tavuista silpoutuu, katoaa tai tulkitaan ohjausmerkeiksi, ja data saapuu vioittuneena. Base64 kiertää ongelman muuntamalla tavut muotoon, jonka mikä tahansa tekstille turvallinen kanava päästää lävitseen koskemattomana. Alkuperäinen data voidaan sitten rakentaa tarkasti uudelleen toisessa päässä.

Miten muunnos toimii
Mekaanisesti Base64 ryhmittelee syötteen kolmen tavun eli 24 bitin lohkoihin, ja jakaa nämä samat 24 bittiä uudelleen neljäksi kuuden bitin ryhmäksi. Kuusi bittiä voi esittää 64 mahdollista arvoa, mikä on juuri syy, miksi aakkostossa on 64 merkkiä. Näin kolme tavua syötettä muuttuu aina neljäksi merkiksi tulostetta. Kun syötteen pituus ei ole tasan kolmella jaollinen, koodain täyttää viimeisen ryhmän yhdellä tai kahdella =-merkillä, jotta purkaja tietää mistä oikea data loppuu.
Tästä nelinkertaisesta kolmen suhteesta juontuu myös kuuluisa kokorasitus: Base64-tuloste on noin 33 % suurempi kuin alkuperäinen data. Jos koodattu teksti kääritään kiinteän mittaisiksi riveiksi, kuten sähköpostistandardit usein vaativat, maksat vielä muutaman prosentin lisää rivinvaihdoista. Tämä ylimäärä on yhteensopivuuden hinta, ja useimmissa käyttötarkoituksissa se on reilu kauppa.
Missä Base64 vastaan tulee
Kun tietää mitä etsiä, Base64 löytyy joka puolelta arjen tietotekniikkaa:
- Data URI:t. Pieni kuva tai fontti voidaan upottaa suoraan HTML:ään tai CSS:ään
data:-URI:lla, jossa tiedoston sisältö on kirjoitettu Base64-muodossa. Selain purkaa sen suoraan, säästäen erillisen verkkopyynnön. - Sähköpostin liitteet. MIME, standardi joka mahdollistaa tiedostojen kulkemisen sähköpostissa, nojaa Base64:ään siirtääkseen binääriliitteet vahingoittumatta pelkkää tekstiä tukevan sähköpostijärjestelmän läpi.
- HTTP Basic -autentikointi. Tuttu
Authorization: Basic ...-otsake on vain käyttäjätunnus ja salasana kaksoispisteellä yhdistettynä ja Base64-koodattuna - juuri siksi Basic-autentikoinnin on aina toimittava HTTPS:n yli. - Tokenit ja konfiguraatio. JSON Web Tokenit, sertifikaatit, SSH-avaimet ja lukemattomat konfiguraatioarvot tallennetaan tai siirretään Base64-muodossa, jotta ne selviävät kopioinnista ja liittämisestä sekä tekstipohjaisesta tallennuksesta.
Koodaus ei ole salausta
Tämä on tärkein yksittäinen asia ymmärtää, ja se kompastuttaa niin aloittelijoita kuin kokeneita kehittäjiäkin. Base64 ei ole salausta eikä tarjoa lainkaan turvallisuutta. Siinä ei ole salaista avainta, salasanaa eikä mitään yksityistä. Muunnos on täysin julkinen ja täysin palautettavissa: kuka tahansa, joka näkee Base64-merkkijonon, voi purkaa sen takaisin alkuperäisiksi tavuiksi sekunnissa, käyttäen työkalua täsmälleen kuin tätä.
Base64 on siis huono piilopaikka salasanoille, API-avaimille tai millekään arkaluontoiselle arvolle. Jos merkkijono vain näyttää sekoitetulta, se ei tee siitä suojattua. Salaus sen sijaan muuntaa dataa salaisen avaimen avulla niin, että vain avaimen haltija voi lukea sen. Nämä kaksi ratkaisevat eri ongelmia: salaus suojaa luottamuksellisuutta, Base64 suojaa yhteensopivuutta. Niitä käytetään usein yhdessä - voit salata datan AES:llä ja sitten Base64-koodata salatekstin, jotta se voi kulkea tekstikanavan läpi - mutta kumpikaan ei koskaan korvaa toista.

Koodaus vs. purku
Nämä kaksi suuntaa ovat yksinkertaisia peilikuvia toisistaan. Koodaus ottaa alkuperäisen tekstisi tai binäärisi ja tuottaa Base64-merkkijonon. Purku ottaa Base64-merkkijonon ja rakentaa tarkasti alkuperäiset tavut uudelleen. Työkalumme tekee molemmat suoraan selaimessasi - mitään kirjoittamastasi tai liittämästäsi ei koskaan lähetetä palvelimelle, joten toimenpide on täysin paikallinen ja yksityinen. Se tekee turvalliseksi purkaa tokenin, jota debuggaat, tai koodata katkelman, jonka haluat upottaa, ilman että datasi poistuu sivulta.
Katso myös liittyviä muunnoksia: URL-koodaus/purku -työkalu prosenttikoodausta varten, tai JWT-purkaja, kun haluat tarkastella tokenin sisällä olevia Base64-segmenttejä. Löydät nämä muiden kehittäjätyökalujemme joukosta.
Usein kysytyt kysymykset
Onko Base64 salausmuoto?
Ei. Base64 on koodaus, ei salaus. Se ei käytä avainta ja on kenen tahansa täysin palautettavissa, joten se ei tarjoa turvallisuutta. Käytä oikeaa salausta, kuten AES tai RSA, suojataksesi arkaluontoista dataa.
Miksi Base64 kasvattaa datan kokoa?
Base64 muuttaa jokaisen kolmen tavun syötettä neljäksi merkiksi tulostetta, mikä lisää kokoa noin 33 %. Jos tuloste jaetaan kiinteän mittaisiin riveihin, rivinvaihdot lisäävät vielä muutaman prosentin päälle.
Mitä merkkejä Base64 käyttää?
Standardiaakkosto on 26 isoa kirjainta, 26 pientä kirjainta, numerot 0-9 sekä symbolit plus ja kauttaviiva, yhtäläisyysmerkin toimiessa täytteenä lopussa.
Voinko turvallisesti tallentaa salasanoja Base64-muodossa?
Ei. Base64 muuttaa vain sen, miltä data näyttää, ei sitä, kuka voi lukea sen. Kuka tahansa voi purkaa sen välittömästi. Salasanat tulee tiivistää (hashata) vahvalla algoritmilla, ja salaisuudet tulee salata.
Onko tämä Base64-työkalu yksityinen?
Kyllä. Koodaus ja purku tapahtuvat kokonaan selaimessasi. Mitään syöttämääsi ei ladata tai lähetetä millekään palvelimelle, joten datasi pysyy omalla laitteellasi.
Mitä eroa on koodauksella ja purulla?
Koodaus muuntaa alkuperäisen tekstin tai binäärin Base64-merkkijonoksi. Purku tekee päinvastoin, muuttaen Base64-merkkijonon takaisin tarkasti alkuperäisiksi tavuiksi. Ne ovat toistensa peilioperaatioita.
