

Tietosi ovat 100-prosenttisen yksityisiä -- Base64 koodataan ja puretaan kokonaan laitteellasi.
Base64 on tapa esittää binääridataa pelkkänä tekstinä käyttäen 64 ASCII-merkkiä: A–Z, a–z, 0–9 sekä + ja /. Sen avulla binääridata, kuten kuvat, avaimet ja sähköpostiliitteet, voi kulkea turvallisesti tekstiä varten rakennettujen järjestelmien läpi. Kyseessä on koodaus, ei salaus.
Base64 käyttää kiinteää 64 merkin aakkosia. Jokainen arvo välillä 0–63 vastaa täsmälleen yhtä merkkiä – näin mikä tahansa 3 tavua binääriä muuttuu 4 luettavaksi merkiksi:
| Arvot | Merkit | |
|---|---|---|
| 0–25 | A–Z | 26 isoa kirjainta |
| 26–51 | a–z | 26 pientä kirjainta |
| 52–61 | 0–9 | 10 numeroa |
| 62–63 | + / | 2 symbolia |
"="-merkki on ainoa poikkeus. Se on täytemerkki, ei yksi 64 arvosta, ja sen tehtävänä on täydentää viimeinen lohko.
Olet lähes varmasti törmännyt siihen jo. Base64 esiintyy kaikkialla, missä binääridata täytyy mahduttaa tekstin sisään:
Data-URI-temppu näyttää tältä. Pitkä merkkijono on koko kuva:
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red dot" />Varhaiset verkkoprotokollat oli rakennettu tekstiä, ei raakoja tavuja varten. ASCII käytti 7 bittiä ja 128 merkkiä, mikä riitti englannille muttei binääridatalle. Jotkin järjestelmät muokkasivat ohjausmerkkejä tai kirjoittivat rivinvaihtoja uudelleen (LF → CR + LF), vioittaen äänettömästi kuvia ja ääntä siirron aikana.
Base64 kiertää kaiken tämän käyttämällä vain merkkejä, joista kaikki järjestelmät ovat samaa mieltä. Base16 ja Base32 tekevät saman työn pienemmillä aakkosilla, mutta Base64 pakkaa enemmän dataa per merkki pysyen silti turvallisena. Siksi se voitti.
Koko menetelmä perustuu yhteen toistuvaan ideaan: otetaan 3 tavua (24 bittiä), jaetaan ne uudelleen neljään 6-bittiseen ryhmään ja etsitään jokainen ryhmä aakkosista. Tässä sana "Logto" koodattuna käsin.
Vaihe 1. Muunna jokainen merkki 8-bittiseksi binääriksi:
| Merkki | ASCII-koodi | Binääri |
|---|---|---|
| L | 76 | 01001100 |
| o | 111 | 01101111 |
| g | 103 | 01100111 |
| t | 116 | 01110100 |
| o | 111 | 01101111 |
Vaihe 2. Ota ensimmäiset kolme tavua, "Log", ja jaa samat 24 bittiä uudelleen neljään 6-bitin ryhmään:
Vaihe 3. Lue jokainen 6-bittinen ryhmä lukuna ja etsi se aakkosista:
| 6-bittinen ryhmä | Arvo | Base64-merkki |
|---|---|---|
| 010011 | 19 | T |
| 000110 | 6 | G |
| 111101 | 61 | 9 |
| 100111 | 39 | n |
"Logto" on 5 tavua, ei 3:n monikerta. Kaksi viimeistä tavua, "to", jättävät jaon 6 + 6 + 4. Täytä viimeiset 4 bittiä nollilla muodostaaksesi 6-bittisen ryhmän, lisää sitten yksi "=" täydentämään 4-merkkinen lohko:
Yhdistä lohkot:
"Logto" → TG9ndG8=Jokainen ohjelmointikieli sisältää tämän valmiina. Node.js:ssä:
const text = 'Logto';
const base64 = Buffer.from(text).toString('base64');
console.log(base64); // TG9ndG8=Kolme sääntöä nousee esiin tästä prosessista, ja ne on hyvä pitää mielessä:
Turvaudu Base64:ään, kun binääridata täytyy siirtää vain tekstiä tukevien kanavien kautta:
Mitä saat vastineeksi:
Tavallinen Base64 käyttää kolmea merkkiä, jotka ovat ristiriidassa URL-osoitteiden, kyselymerkkijonojen ja tiedostonimien toiminnan kanssa: +, / ja = täytemerkki. Liitä tavallinen Base64-merkkijono linkkiin, ja se voi rikkoutua huomaamattomasti:
Voit prosenttienkoodata ne (+ muuttuu %2B:ksi, / muuttuu %2F:ksi, = muuttuu %3D:ksi), mutta se paisuttaa merkkijonoa ja on helppo kaksinkertaisesti koodata vahingossa.
Base64URL (RFC 4648 §5) korjaa tämän lähteessä: vaihda + merkkiin -, vaihda / merkkiin _ ja jätä = täytemerkki pois. Tulos sopii suoraan URL-osoitteeseen, kyselyparametriin tai tiedostonimeen ilman mitään koodausta. Näet sitä URL-osoitteissa, tiedostonimissä ja monissa web-rajapinnoissa.
const base64 = 'TG9ndG8=';
const urlSafe = base64.replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '');
console.log(urlSafe); // TG9ndG8Base64 on esitystapa, ei ilmainen lounas. Pidä kolme asiaa mielessä:
Ei. Se on palautettavissa oleva koodaus julkisilla aakkosilla, joten kuka tahansa voi purkaa sen välittömästi, eikä se tarjoa lainkaan luottamuksellisuutta. Salaa arkaluonteinen data sen sijaan.
Base64 muuttaa jokaisen 3 tavun 4 merkiksi, joten koodattu muoto on aina noin kolmanneksen suurempi kuin alkuperäiset tavut.
Ne ovat täytemerkkejä, jotka pitävät tulosteen 4 merkin monikertana. Yksi "=" tarkoittaa, että syötteessä oli 2 ylijäämätavua; kaksi "=" tarkoittaa 1; ei "=" tarkoittaa, että pituus oli jo 3 tavun monikerta.
Base64URL on sama koodaus URL- ja tiedostonimiturvallisilla aakkosilla: - ja _ korvaavat + ja /, ja = täytemerkki jätetään yleensä pois. Se on yleinen URL-osoitteissa, tiedostonimissä ja monissa web-rajapinnoissa.
Mitä tahansa binääriä: kuvia, PDF-tiedostoja, avaimia, suoritettavia tiedostoja. Base64 toimii raakojen tavujen kanssa, joten alkuperäisellä sisältötyypillä ei ole merkitystä.
Ei. Koodaus ja dekoodaus suoritetaan kokonaan selaimessasi. Mitään liittämääsi ei ladata tai kirjata lokiin.