[GUIDE] Komplett Base64 Referanse
Alt du trenger å vite om Base64-koding: teori, implementering og beste praksis.
// HVA ER BASE64?
Base64 er et binær-til-tekst kodingsskjema som representerer binære data ved hjelp av 64 ASCII-tegn. Det er designet for å kode binære data som må lagres og overføres via medier som er designet for tekstdata.
Base64-tegnsettet inkluderer A-Z, a-z, 0-9, og to ekstra tegn (typisk + og /), pluss = for utfylling.
// HVORDAN BASE64 FUNGERER
Base64-koding fungerer ved å ta binære data og konvertere dem til en streng med ASCII-tegn. Prosessen innebærer:
1. Del opp input i 6-bits segmenter (Base64 bruker 6 bits per tegn) 2. Koble hver 6-bits verdi til et tegn i Base64-alfabetet 3. Legg til utfylling med '='-tegn om nødvendig
// Eksempel: Koding av 'Man' til Base64
// 'M' = 01001101, 'a' = 01100001, 'n' = 01101110
// Kombinert: 010011010110000101101110
// Delt i 6-bits grupper: 010011 010110 000101 101110
// Desimalverdier: 19, 22, 5, 46
// Base64-tegn: T, W, F, u
// Resultat: 'TWFu'
// VANLIGE BRUKSOMRÅDER
- > Innbygging av bilder i HTML/CSS (data URI-er)
- > Koding av binære data for JSON API-er
- > E-postvedlegg (MIME-koding)
- > Lagring av binære data i databaser
- > Autentiseringstokens og API-nøkler
- > URL-sikker dataoverføring
// JAVASCRIPT IMPLEMENTERING
Moderne nettlesere tilbyr innebygde funksjoner for Base64-koding og -dekoding:
For å kode tekst til Base64, bruk btoa() (binary to ASCII). For å dekode Base64 til tekst, bruk atob() (ASCII to binary).
// Koding av tekst til Base64
const text = 'Hello, World!';
const encoded = btoa(text);
console.log(encoded); // SGVsbG8sIFdvcmxkIQ==
// Dekoding av Base64 til tekst
const decoded = atob(encoded);
console.log(decoded); // Hello, World!
// For Unicode-strenger, bruk TextEncoder/TextDecoder
const encoder = new TextEncoder();
const decoder = new TextDecoder();
const unicodeText = 'Hello, 世界!';
const bytes = encoder.encode(unicodeText);
const base64 = btoa(String.fromCharCode(...bytes));
console.log(base64);
// SIKKERHETSHENSYN
Base64 er IKKE kryptering eller sikkerhet. Det er bare koding for datarepresentasjon. Viktige sikkerhetsmerknader:
Bruk aldri Base64 alene for beskyttelse av sensitive data. Valider alltid Base64-input for å forhindre injeksjonsangrep. Vær klar over at Base64 øker datastørrelsen med ~33%.
- > Base64 er lett å reversere - det gir ingen sikkerhet
- > Valider og rens alltid Base64-input
- > Bruk riktig kryptering for sensitive data
- > Vurder URL-sikre Base64-varianter for webapplikasjoner
- > Vær oppmerksom på padding oracle-angrep i noen sammenhenger
// BESTE PRAKSIS
- > Bruk URL-sikker Base64 for webapplikasjoner (erstatt + med -, / med _)
- > Håndter alltid utfylling korrekt
- > Valider inputlengde og tegn
- > Vurder komprimering før koding for store data
- > Bruk streaming for meget store datasett
- > Implementer riktig feilhåndtering for ugyldig input