Siirry sisältöön

Base64-koodaaja ja -purkaja - Ilmainen online Base64-muunnostyökalu

Ilmainen base64-koodaaja ja -purkaja. Muunna teksti Base64-muotoon tai pura Base64-merkkijonot välittömästi. Tukee vakio- ja URL-turvallista koodausta. Ei vaadi kirjautumista.

Base64-koodaaja/purkaja

Muunna teksti Base64-koodaukseen ja takaisin

Latauslaskuri...
📚

Dokumentaatio

Mitä Base64-koodaus on?

Base64 on tapa muuntaa mikä tahansa data, mukaan lukien binääridata kuten kuvat, pelkistä kirjaimista, numeroista ja muutamista symboleista koostuvaksi tekstiksi. Base64-koodain muuntaa datan tähän tekstimuotoon. Base64-dekoodain palauttaa sen alkuperäiseksi dataksi. Ohjelmat käyttävät Base64:tä binääridatan turvalliseen siirtämiseen järjestelmien, kuten sähköpostin tai JSONin, kautta, kun järjestelmät odottavat pelkkää tekstiä.

Base64 käyttää aakkostoa, jossa on 64 merkkiä:

  • Isot kirjaimet A–Z (26 merkkiä)
  • Pienet kirjaimet a–z (26 merkkiä)
  • Numerot 0–9 (10 merkkiä)
  • Kaksi symbolia, yleensä + ja / (2 merkkiä)

Jotkin järjestelmät käyttävät tulosteen lopussa myös yhtäsuuruusmerkkiä (=) täytteenä. Täyte ei kuulu 64 merkin aakkostoon, vaan se vain täydentää pituuden.

Miksi Base64 on olemassa

Monet vanhemmat tekstiprotokollat, kuten sähköposti (SMTP) ja jotkin HTTP:n osat, suunniteltiin kuljettamaan 7-bittistä ASCII-tekstiä. Ne voivat turmella käsittelemättömiä binääritavuja, kuten JPEG-kuvan sisältämiä tavuja. Base64 välttää tämän esittämällä jokaisen tavun vain turvallisilla, tulostettavilla merkeillä. Siksi sähköpostin liitetiedostot, verkkosivuille upotetut kuvat ja JSONin sisäiset binäärikentät kulkevat yleensä ensin Base64:n kautta.

Base64 ei ole pakkausta eikä salausta. Koodattu tuloste on aina syötettä suurempi, ja kuka tahansa voi dekoodata sen ilman salasanaa tai avainta.

Tämän työkalun käyttö

  1. Kirjoita tai liitä teksti syöttökenttään.
  2. Valitse "Koodaa Base64:ksi", jos haluat muuntaa tekstin Base64-muotoon, tai "Dekoodaa Base64:stä", jos haluat muuntaa Base64-merkkijonon takaisin tekstiksi.
  3. Ota reaaliaikainen muunnos käyttöön, jolloin tuloste päivittyy automaattisesti kirjoittamisen aikana.
  4. Kopioi tulos kopiointipainikkeella.

Työkalu lukee ja kirjoittaa tavallista Unicode-tekstiä, joten aksentoidut kirjaimet, symbolit ja emojit koodataan ja dekoodataan oikein, eivät vain tavalliset englannin kirjaimet.

Miten Base64-koodaus toimii

Base64 muuntaa jokaista syötteen 3 tavua (24 bittiä) kohden 4 tulostemerkkiä (joista kukin sisältää 6 bittiä), koska 24 jaettuna 6:lla on 4.

  1. Ota syötteen tavut ja kirjoita ne binäärimuodossa.
  2. Ryhmittele bitit 24 bitin ryhmiin (3 tavua).
  3. Jaa kukin 24 bitin ryhmä neljäksi 6 bitin osaksi.
  4. Etsi kukin 6 bitin luku (0–63) Base64-aakkostosta ja kirjoita vastaava merkki.

Jos syötteen pituus ei ole luvun 3 monikerta, viimeinen ryhmä on vajaa. Koodain täydentää sitä nollabiteillä ja lisää tulosteeseen =-merkkejä, jotta tulos muodostuu edelleen 4 merkin ryhmistä:

  • Yksi jäljelle jäävä tavu tuottaa 2 Base64-merkkiä sekä ==.
  • Kaksi jäljelle jäävää tavua tuottaa 3 Base64-merkkiä sekä yhden =-merkin.

Esimerkki Base64-koodauksesta

Sanan "Hello" koodaus:

  1. ASCII-arvot: 72, 101, 108, 108, 111
  2. Binääri: 01001000 01100101 01101100 01101100 01101111
  3. Ensimmäiset 3 tavua (24 bittiä) jaetaan neljäksi 6 bitin ryhmäksi: 010010 000110 010101 101100, jotka ovat luvut 18, 6, 21, 44 → merkit S, G, V, s.
  4. Jäljelle jäävät 2 tavua (16 bittiä) jaetaan kolmeksi 6 bitin ryhmäksi, ja loppuun lisätään 2 nollabittiä: 011011 000110 111100, jotka ovat luvut 27, 6, 60 → merkit b, G, 8.
  5. Koska jäljelle jäi 2 tavua, loppuun lisätään yksi =-merkki.
  6. Tulos: SGVsbG8=

Dekoodaus kääntää nämä vaiheet päinvastaisiksi: kukin merkki vastaa omaa 6 bitin lukuaan, bitit yhdistetään jonoksi ja jono luetaan uudelleen 8 bitin tavuina.

Base64-koodatun pituuden kaava

n tavun syötteelle koodatun merkkijonon pituus merkkeinä on:

encoded_length = 4 × ⌈n / 3⌉

jossa ⌈x⌉ tarkoittaa pyöristämistä ylöspäin lähimpään kokonaislukuun. Kaava osoittaa, miksi Base64-tuloste on aina noin kolmanneksen syötettä suurempi: jokaista 3 syötetavua kohden käytetään 4 tulostemerkkiä, mikä merkitsee 33 %:n lisäystä.

Missä Base64:tä käytetään

  • Sähköpostin liitetiedostot (MIME). Sähköposti suunniteltiin tekstille, joten liitetiedostot muunnetaan Base64:ksi ennen lähettämistä. Tällöin liitetiedosto on noin 33 % alkuperäistä suurempi.
  • Data-URI:t. Pieniä kuvia voidaan upottaa suoraan HTML- tai CSS-koodiin tekstinä, esimerkiksi data:image/png;base64,iVBORw0KGgo..., jolloin erillistä tiedostopyyntöä ei tarvita. Tämä toimii parhaiten pienillä tiedostoilla, sillä suuret tiedostot paisuttavat sivua eikä niitä voi tallentaa välimuistiin erillisinä.
  • API:t ja JSON. JSONissa ei ole alkuperäistä tapaa sisältää raakaa binääridataa, joten JSON-rajapinnan kautta lähetettävät binääritiedostot koodataan usein ensin Base64:ksi.
  • HTTP Basic -todennus. Authorization-otsake koodaa käyttäjänimen ja salasanan Base64:ksi, esimerkiksi Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=. Tämä ei yksinään ole turvallista: kuka tahansa siirtoa sieppaava voi lukea tunnistetiedot, joten Basic-todennusta tulisi käyttää vain HTTPS:n kautta.
  • JSON Web Tokenit (JWT). JWT:n kukin kolmesta osasta koodataan Base64URL-muotoon, joka soveltuu turvallisesti URL-osoitteisiin.
  • Binääridatan tallentaminen tekstinä. Tietokannoissa tai asetustiedostoissa, jotka hyväksyvät vain tekstiä, binääridataa säilytetään toisinaan Base64-merkkijonona.

Base64 verrattuna muihin koodauksiin

URL-turvallinen Base64 korvaa vakioformaatin merkit + ja / merkeillä - ja _, koska merkeillä + ja / on URL-osoitteissa erityismerkitys. Sitä käytetään JWT-tunnisteissa, URL-kyselyparametreissa ja tiedostonimissä. Tämä työkalu tuottaa vakiomuotoista Base64-tulostetta; URL-turvalliseen muotoon muuntaminen edellyttää vain näiden kahden merkin vaihtamista.

Base32 käyttää 32 merkin aakkostoa, joten kukin merkki sisältää 5 bittiä 6 bitin sijaan. Se muuntaa jokaista 5 tavua kohden 8 merkkiä, joten ylimääräistä tilaa kuluu 60 % (8 ÷ 5 = 1,6), kun Base64:llä vastaava luku on 33 %. Base32 valitaan, kun tuloste on kirjoitettava käsin tai luettava puhelimitse, koska siinä ei käytetä kirjainkoon vaihtelua eikä helposti sekoitettavia merkkejä.

Heksadesimaali käyttää 16 merkkiä (0–9, A–F) ja tarvitsee 2 merkkiä tavua kohden, joten koko kaksinkertaistuu (100 % ylimääräistä tilaa). Sitä käytetään yleisesti hajautusarvojen, värien ja MAC-osoitteiden esittämiseen, kun luettavuus on tiiviyttä tärkeämpää.

Milloin Base64:tä ei pidä käyttää

Base64 kasvattaa kokoa ja suorittimen kuormitusta, joten se sopii huonosti suurille verkon kautta lähetettäville tiedostoille; raa'an binääridatan lähettäminen suoraan on pienempää ja nopeampaa. Siihen ei pidä koskaan luottaa arkaluonteisten tietojen, kuten salasanojen tai API-avainten, piilottamisessa, koska dekoodaus ei vaadi salaista tietoa. Suurten tiedostojen tallentamiseen tietokannan binäärisaraketyyppi tai tiedostojen tallennuspalvelu on yleensä parempi kuin pitkä Base64-merkkijono tekstikentässä.

Yleiset virheet

  • UTF-8-muunnoksen ohittaminen. Aksentoituja kirjaimia tai emojeita sisältävän tekstin koodaaminen ilman, että teksti muunnetaan ensin UTF-8-tavuiksi, voi turmella tulosteen.
  • Täytteen poistaminen. Jotkin järjestelmät poistavat lopussa olevat =-merkit. Useimmat dekoodaimet toimivat edelleen, jos merkkijonon pituus täydennetään takaisin luvun 4 monikerraksi, mutta kaikki eivät hyväksy tätä, joten täyte on turvallisinta säilyttää.
  • Ylimääräiset rivinvaihdot. Vanhemmat MIME-pohjaiset koodaimet lisäävät rivinvaihdon jokaisten 76 merkin jälkeen; useimmat nykyiset dekoodaimet odottavat yhtä yhtenäistä merkkijonoa ilman niitä.
  • Varianttien sekoittaminen. Tavallinen Base64 ja URL-turvallinen Base64 käyttävät aakkoston samoissa kahdessa kohdassa eri merkkejä; dekoodaus väärällä variantilla tuottaa roskaa tai virheen.

Usein kysyttyä

Onko Base64 salausta? Ei. Se on palautuva tekstikoodaus, ei salausta. Kuka tahansa voi dekoodata Base64-merkkijonon heti ilman salasanaa. Jos tiedot on pidettävä salassa, käytä salausalgoritmia, kuten AES:ää.

Miksi Base64 kasvattaa datan kokoa? Koska se käyttää yhden kokonaisen merkin vain 6 bitin sisältämiseen, kun raakatavu sisältää 8 bittiä. Kun 3 tavua (24 bittiä) muunnetaan 4 merkiksi, tuloste on 4/3-kertainen eli noin 33 % syötettä suurempi.

Voiko Base64:llä koodata kuvia ja muita binääritiedostoja? Kyllä. Kaikki binääritiedostot, kuten kuvat, PDF-tiedostot ja äänitiedostot, voidaan koodata Base64:ksi ja dekoodata takaisin tavu tavulta. Sitä käytetään yleisesti HTML- tai CSS-koodiin upotetuissa pienissä kuvissa, mutta se sopii huonosti suurille tiedostoille.

Mikä ero on Base64:n ja Base64URL:n välillä? Base64URL vaihtaa vakiomuodon merkit + ja / merkeiksi - ja _, joten tulos voidaan sijoittaa turvallisesti URL-osoitteeseen tai tiedostonimeen ilman ylimääräistä erikoismerkkien koodausta. JWT-tunnisteet käyttävät tästä syystä Base64URL:ää.

Miksi Base64-merkkijonon dekoodaus antaa "invalid"-virheen? Yleisimmät syyt ovat Base64-aakkostoon kuulumattomat merkit, kuten URL-turvallisessa variantissa käytetyt - ja _, tai merkkijono, jonka pituus on yhden suurempi kuin luvun 4 monikerta. Millään kelvollisella Base64-merkkijonolla ei ole tällaista pituutta. Dekoodaus epäonnistuu myös, jos dekoodatut tavut eivät ole kelvollista UTF-8-tekstiä. Tämä työkalu ohittaa merkkijonon sisäiset välilyönnit ja rivinvaihdot, ja se dekoodaa edelleen merkkijonon, josta lopussa oleva =-täyte on poistettu.

Mistä Base64 on peräisin? Menetelmä juontaa juurensa varhaisiin tapoihin lähettää binääridataa tekstipohjaisten sähköpostijärjestelmien kautta 1980-luvulla, ja se standardoitiin virallisesti osaksi MIME:tä asiakirjassa RFC 2045 vuonna 1996. Base64:n, Base32:n ja Base16:n nykyinen viitestandardin määrittely on RFC 4648.