Merkkimuunnin

Kirjoita tai liitä teksti ja valitse muunnostyyppi. Tulos päivittyy automaattisesti ja sen voi kopioida leikepöydälle.



Mikä on merkkimuunnin?

Merkkimuunnin on työkalu, jolla voit koodata (encode) ja purkaa (decode) tekstiä eri esitysmuotojen välillä. Verkkoselaimet, palvelimet ja ohjelmistot käyttävät useita eri koodaustapoja siirtääkseen erikoismerkkejä, binääridataa ja rakenteellista sisältöä turvallisesti. Tämä työkalu tukee neljää yleisintä muotoa: Base64, URL-koodaus, HTML-entiteetit ja Unicode-pakosekvenssit.

Koodaus ei ole salausta – se ei suojaa tietoa ulkopuolisilta. Koodauksen tarkoitus on varmistaa, että data säilyy ehjänä siirrettäessä sitä järjestelmien välillä, joissa tietyillä merkeillä on erityismerkitys.

Koodaustyypit ja niiden käyttö

Base64

Base64 muuntaa minkä tahansa binääridatan ASCII-merkeiksi (A–Z, a–z, 0–9, +, /). Sitä käytetään laajasti esimerkiksi sähköpostin liitetiedostoissa (MIME), kuvien upottamisessa HTML- ja CSS-koodiin sekä JWT-tokenien rakenteessa. Base64 kasvattaa datan kokoa noin 33 %, koska kolme tavua esitetään neljällä merkillä.

Esimerkki: Moi maailma!TW9pIG1hYWlsbWEh

URL-koodaus (Percent-encoding)

URL-koodaus korvaa erikoismerkit prosenttimerkillä ja heksadesimaaliluvulla (esim. välilyönti → %20). Tämä on välttämätöntä, koska URL-osoitteissa tietyillä merkeillä on varattu merkitys: ? aloittaa kyselyparametrit, & erottaa parametrit, = yhdistää avain-arvoparin ja # viittaa ankkuriin.

Esimerkki: hakusana=kissa & koirahakusana%3Dkissa%20%26%20koira

HTML-entiteetit

HTML-koodauksessa erikoismerkit korvataan entiteeteillä, jotta selain ei tulkitse niitä HTML-rakenteena. Tämä on kriittistä XSS-hyökkäysten (Cross-Site Scripting) estämiseksi. Esimerkiksi <script> -tagi tulee aina koodata, jos se näytetään käyttäjälle sivulla.

Esimerkki: <b>Tervetuloa</b>&lt;b&gt;Tervetuloa&lt;/b&gt;

Unicode-pakosekvenssit

Unicode-pakosekvenssit esittävät merkit muodossa \uXXXX, missä XXXX on merkin koodipiste heksadesimaalina. Tätä muotoa käytetään JSON-tiedostoissa, JavaScript-merkkijonoissa ja monissa ohjelmointikielissä merkistöriippumattomaan esitykseen.

Esimerkki: Ääkköset\u00C4\u00E4kk\u00F6set

Koodausmuotojen vertailu

MuotoKäyttökohdeMerkistöKokokuorma
Base64Binääridata ASCII-kanavassaA–Z, a–z, 0–9, +, /+33 %
URL-koodausURL-osoitteet, lomakedataProsentti + hexVaihteleva
HTML-entiteetitHTML-sivujen sisältö&-alkuiset kooditVaihteleva
Unicode (\uXXXX)JSON, JavaScript, ohjelmakoodiHeksadesimaali6 merkkiä / koodattu merkki

Yleisimmät HTML-entiteetit

MerkkiEntiteettiKuvaus
&&amp;Et-merkki
<&lt;Pienempi kuin
>&gt;Suurempi kuin
"&quot;Lainausmerkki
'&#39;Heittomerkki
©&copy;Copyright
&euro;Euro-merkki
&nbsp;Ei-katkaiseva välilyönti

Tietoturva ja koodaus

Koodaus on tärkeä osa tietoturvaa, vaikka se ei ole salausta. Oikea koodaus estää monia yleisiä hyökkäyksiä:

  • XSS (Cross-Site Scripting): HTML-entiteettikoodaus estää haitallisen JavaScript-koodin injektoinnin verkkosivulle. Kaikki käyttäjältä tuleva syöte tulee aina koodata ennen sen näyttämistä sivulla.
  • SQL-injektio: Vaikka SQL-injektio estetään pääasiassa parametrisoiduilla kyselyillä, oikea koodaus on lisäsuoja.
  • URL-manipulaatio: URL-koodaus varmistaa, että kyselyparametreissa olevat erikoismerkit eivät muuta URL:n rakennetta.

On tärkeää muistaa, että Base64-koodaus ei suojaa dataa – kuka tahansa voi purkaa sen. Arkaluontoista tietoa varten käytä aina oikeaa salausta (AES, RSA jne.).

Milloin käytän mitäkin koodausta?

  • Base64: Kun haluat lähettää binääridataa (kuvia, tiedostoja) tekstipohjaisessa kanavassa, kuten sähköpostissa tai JSON-rajapinnassa.
  • URL-koodaus: Aina kun lisäät käyttäjän syötettä URL-osoitteeseen tai lähetät lomakedataa GET-pyynnössä.
  • HTML-entiteetit: Kun näytät käyttäjän antamaa tekstiä HTML-sivulla ja haluat estää XSS-hyökkäykset.
  • Unicode: Kun tarvitset merkistöriippumatonta esitystä ohjelmakoodissa tai konfiguraatiotiedostoissa.

Muita hyödyllisiä työkaluja

Lähteet

Usein kysytyt kysymykset

Mikä ero on koodauksella ja salauksella?

Koodaus (encoding) muuttaa datan toiseen esitysmuotoon niin, että se voidaan helposti palauttaa alkuperäiseksi. Salaus (encryption) tekee datan lukukelvottomaksi ilman avainta. Koodaus ei suojaa tietoa – kuka tahansa voi purkaa esim. Base64-koodauksen.

Miksi URL-osoitteet pitää koodata?

URL-osoitteissa tietyillä merkeillä on erityismerkitys (?, &, =, #, /). Jos näitä merkkejä käytetään datana (esim. hakusanassa), ne täytyy koodata prosenttikoodauksella, jotta selain ja palvelin tulkitsevat URL:n oikein.

Onko Base64-koodaus turvallista?

Base64 ei ole turvallista tiedon suojaamiseen. Se on vain esitystavan muutos, ja kuka tahansa voi purkaa Base64-koodatun tekstin takaisin alkuperäiseksi. Älä koskaan käytä Base64:ää salasanojen tai arkaluontoisen tiedon suojaamiseen.

Mitä HTML-entiteetit ovat?

HTML-entiteetit ovat erikoismerkkien korvaavia koodeja, joita selain ei tulkitse HTML-rakenteena. Esimerkiksi &lt; tarkoittaa <-merkkiä. Entiteettejä käytetään XSS-hyökkäysten estämiseen ja erikoismerkkien turvalliseen näyttämiseen verkkosivuilla.

Milloin tarvitsen Unicode-pakosekvenssejä?

Unicode-pakosekvenssejä (\uXXXX) käytetään tyypillisesti ohjelmointikielissä ja JSON-tiedostoissa, kun halutaan esittää erikoismerkkejä (kuten ä, ö, ü tai emoji) ilman merkistökoodausongelmia.

🔍
Kokeile myös näitä