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
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ö
- Kirjoita tai liitä teksti syöttökenttään.
- Valitse "Koodaa Base64:ksi", jos haluat muuntaa tekstin Base64-muotoon, tai "Dekoodaa Base64:stä", jos haluat muuntaa Base64-merkkijonon takaisin tekstiksi.
- Ota reaaliaikainen muunnos käyttöön, jolloin tuloste päivittyy automaattisesti kirjoittamisen aikana.
- 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.
- Ota syötteen tavut ja kirjoita ne binäärimuodossa.
- Ryhmittele bitit 24 bitin ryhmiin (3 tavua).
- Jaa kukin 24 bitin ryhmä neljäksi 6 bitin osaksi.
- 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:
- ASCII-arvot: 72, 101, 108, 108, 111
- Binääri:
01001000 01100101 01101100 01101100 01101111 - Ensimmäiset 3 tavua (24 bittiä) jaetaan neljäksi 6 bitin ryhmäksi:
010010 000110 010101 101100, jotka ovat luvut 18, 6, 21, 44 → merkitS,G,V,s. - 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 → merkitb,G,8. - Koska jäljelle jäi 2 tavua, loppuun lisätään yksi
=-merkki. - 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, esimerkiksiAuthorization: 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.