Base64-kooderi ja -dekooderi verkossa

0 chars
0 chars

Tarvitsetko luettavan tekstin muuntamista Base64-muotoon käytettäväksi HTTP-otsakkeissa, tai päinvastoin purkaa API-tokenin sisältöä? Meidän Base64-tekstin kooderi ja dekooderi on erikoistunut työkalu tekstimerkkijonojen käsittelyyn, joka selviää hankalistakin asioista, kuten diakriittisista merkeistä tai erikoismerkeistä.

Käsitteletkö kuvia?
Jos koodisi alkaa data:image/png... tai haluat muuntaa tiedoston tekstiksi, tämä työkalu näyttää sinulle vain merkityksettömiä merkkejä. Käytä erikoistunutta työkalua kuvien muuntamiseen.

Miten Base64-muoto toimii?

Monet käyttävät Base64:ää päivittäin, mutta harva tietää, miten se toimii “konepellin alla”. Kyse ei ole taikuudesta, vaan yksinkertaisesta bittimatematiikasta.

Tavallinen teksti tietokoneessa tallennetaan 8 bitin (1 tavun) paloina. Base64 käyttää kuitenkin “aakkostoa”, jossa on 64 merkkiä (A-Z, a-z, 0-9, +, /). Koska 2^6 = 64, yksi Base64-merkki edustaa tarkalleen 6 bittiä tietoa.

Muunnosprosessi (Algoritmi):

  1. Otetaan kolme merkkiä tekstistäsi (3 × 8 bittiä = 24 bittiä).
  2. Nämä 24 bittiä jaetaan neljään 6 bitin ryhmään.
  3. Jokaiselle ryhmälle määritetään merkki Base64-taulukosta.

Seuraus: Koska kolmesta merkistä tehdään neljä merkkiä, tuloksena oleva Base64-merkkijono on aina noin 33 % pidempi kuin alkuperäinen teksti.

Merkistöongelma: Miksi tavalliset Base64-muuntimet tuhoavat erikoismerkkejä?

Jos olet joskus yrittänyt koodata sanan “Kůň” selaimen konsolissa käyttämällä funktiota btoa('Kůň'), olet todennäköisesti saanut virheilmoituksen: String contains characters outside of the Latin1 range.

Base64 suunniteltiin alun perin 7-bittisille ASCII-merkeille. Suomen kielen ääkköset, emojit ja muut erikoissymbolit (UTF-8) vievät kuitenkin muistissa useampia tavuja (monitavuiset merkit).

  • Kirjain a = 1 tavu.
  • Kirjain ö = 2 tavua.
  • Emoji 🚀 = 4 tavua.

Työkalumme ratkaisee tämän ongelman. Ennen Base64-koodausta teksti muunnetaan oikein UTF-8-tavujonoksi. Tämän ansiosta voit koodata JSON-objekteja, suomenkielisiä tekstejä ja moderneja symboleja turvallisesti ilman tietojen vaurioitumisen riskiä.

Missä Base64-tekstin koodausta käytetään?

Vaikka Base64-kuvia käytetään pääasiassa upottamiseen CSS:ään/HTML:ään, teksti-Base64:lla on täysin erilaisia käyttökohteita taustajärjestelmissä:

1. HTTP Basic Authentication

Kun kirjaudut API:in, otsake näyttää usein tältä: Authorization: Basic dXppdmF0ZWw6aGVzbG8= Tämän koodin takana piilee yksinkertaisesti yhdistetty käyttäjätunnus ja salasana muodossa käyttäjä:salasana. Työkalumme avulla voit helposti luoda tai tarkistaa näitä otsakkeita.

2. JSON Web Tokens (JWT)

Nykyaikaiset verkkosovellukset käyttävät kirjautumiseen ns. JWT:tä. Tällainen tokeni näyttää kolmelta pitkältä, pisteellä erotetulta merkkijonolta. Tietoja sisältävä osa (Payload) on tavallinen Base64-koodattu JSON-objekti.

  • Vinkki: Kokeile liittää tähän JWT-tokenisi keskiosa ja dekoodaa se. Näet tarkalleen, mitä tietoja sovellus sinusta tallentaa (esim. käyttäjätunnus, vanhenemisaika).

3. Konfiguraatiotiedostot (Kubernetes Secrets)

Alustat kuten Kubernetes tallentavat salaiset tiedot (Secrets) konfiguraatio-YAML-tiedostoihin Base64-muodossa. Tämä ei ole salausta, vaan tapa tallentaa binääridataa tai tekstiä ongelmallisilla merkeillä (rivinvaihdot, lainausmerkit) tekstitiedostoon.

Mitä on “URL-turvallinen Base64-koodaus” ja miksi se on tärkeää?

Standardi Base64-aakkosto sisältää merkit + (plus) ja / (vinoviiva). Molemmilla näillä merkeillä on erityinen merkitys URL-osoitteissa:

  • / erottaa hakemistoja.
  • + tulkitaan usein välilyönniksi.

Jos lähettäisit standardin Base64:n URL-parametrina (esim. site.com?token=ab/cd+ef), palvelin saattaisi lukea datan väärin.

Ratkaisu (URL-turvallinen tila): Kytkimemme aktivoi Base64URL-variantin (RFC 4648 mukaan), joka suorittaa seuraavat muutokset:

  • + muuttuu merkiksi - (viiva).
  • / muuttuu merkiksi _ (alaviiva).
  • Lopusta poistetaan merkit = (täyte), joita ei tarvita URL-osoitteissa.

Myytti: Base64 ei ole salausta!

On tärkeää ymmärtää perustavanlaatuinen ero, jonka aloittelijat usein sekoittavat:

  1. Koodaus (Encoding - Base64): Käytetään tiedonsiirtoon. Se on kuin pakattaisiin tavara matkalaukkuun, jotta se ei rikkoudu matkalla. Kuka tahansa löytää laukun, voi avata sen (dekoodata) ja nähdä sisällön. Se ei ole turvallista luottamuksellisille tiedoille.
  2. Salaus (Encryption - AES, RSA): Lukitsee tiedot avaimella. Ilman avainta et pääse käsiksi sisältöön.
  3. Hajautus (Hashing - SHA, MD5): Yksisuuntainen prosessi (esim. salasanojen tallentamiseen). Tuloksesta ei voi saada alkuperäistä tekstiä.

Jos sinun on lähetettävä salasana tai arkaluontoinen tieto, pelkkä Base64 ei riitä. Sinun on käytettävä HTTPS:ää (SSL/TLS), joka salaa tiedonsiirron.


Usein kysytyt kysymykset (UKK)

Mitä "=" -merkit merkkijonon lopussa tarkoittavat? Se on ns. "täyte" (padding). Koska Base64 koodaa dataa 3 merkin ryhmissä, alkuperäisen tekstin pituus ei välttämättä ole jaollinen kolmella. `=` -merkit lisätään loppuun, jotta dekooderi tietää, kuinka monta bittiä sen tulee jättää huomiotta lopusta.
Miksi dekoodattu teksti näyttää "sekasotkulta"? Todenäköisesti yrität dekoodata dataa, joka ei ole tekstiä. Jos Base64-merkkijono edustaa pakattua tiedostoa (ZIP), kuvaa tai salattuja tietoja, muuntaminen tekstiksi (UTF-8) ei ole järkevää. Yritä selvittää datan alkuperä.
Toimiiko työkalu offline-tilassa? Kyllä. Kaikki muunnoslogiikka on kirjoitettu JavaScriptillä ja se toimii suoraan selaimessasi. Kun sivu on latautunut, voit katkaista internet-yhteyden ja työkalu toimii edelleen. Tietojasi ei lähetetä mihinkään.