Gå til innholdet
MaxyTools

Base64, URL-koding og JWT-tokens: forstå og dekode

Oppdatert · 3 min lesetid

· Oppdatert

Et bilde lagt inn på en side som en lang rekke bokstaver, en adresse der mellomrom blir til %20, en innloggingstoken satt sammen av tre blokker adskilt av punktum: Base64, URL-koding og JWT-er dukker opp hver dag i webutvikling. De ligner på hverandre, forveksles lett, og ingen av dem er kryptering. Her er hva de faktisk gjør, og hvordan du dekoder dem trygt.

Base64: å gjøre bytes utskrivbare

Base64 representerer binære data (et bilde, en PDF) med bare 64 trygge tegn: A-Z, a-z, 0-9, + og /. Det brukes overalt der en kanal bare godtar tekst: vedlegg i e-post, bilder lagt inn i CSS eller HTML (prefikset data:), tokens og noen konfigurasjonsfiler.

Prinsippet: 3 byte (24 biter) deles i 4 grupper på 6 biter, og hver gruppe representeres av ett tegn. For eksempel blir «Man» til «TWFu» og «Hello» til «SGVsbG8=» (tegnet = fyller ut den siste ufullstendige blokken). Den tallmessige konsekvensen: Base64 gjør alltid 3 byte om til 4 tegn, altså +33 % i volum. Et bilde på 1 MB lagt inn som data: veier omtrent 1,33 MB.

La oss gjenta det: Base64 er ikke kryptering. Hvem som helst dekoder det på et øyeblikk. Bruk det aldri for å «skjule» et passord.

Koding og dekoding med Base64-koding og -dekoding

  1. Velg Kod eller Dekod, og lim deretter inn tekst eller slipp en fil (24 MB maksimalt: Base64 legger til en tredjedel, og over det ville fanen blitt treg).
  2. Tekst gjøres om til UTF-8 før kodingen: æ, ø, å, aksenter, arabisk og emoji overlever fram og tilbake uten skade, i motsetning til en rå btoa i JavaScript.
  3. Ved dekoding godtas begge alfabetene (standard og «URL-sikkert» med - og _ i stedet for + og /), med eller uten =, linjeskift og et data:…-prefiks, automatisk.
  4. Hvis de dekodede bytene ikke er tekst, gjenkjenner verktøyet typen (PNG, JPEG, PDF, ZIP …), viser en forhåndsvisning av bilder og tilbyr filen for nedlasting.
  5. Valg for utdata: URL-sikker variant, uten utfylling (=), MIME-linjeskift, data:-prefiks.

URL-koding (prosentkoding)

En nettadresse kan bare inneholde visse tegn. De andre erstattes av et «%» etterfulgt av to heksadesimale sifre som representerer UTF-8-bytene. Bokstaven «é» blir %C3%A9, bokstaven «å» blir %C3%A5, den arabiske bokstaven «م» blir %D9%85, og emojien «😀» blir %F0%9F%98%80 (fire byte). Et mellomrom blir %20, eller + i et klassisk HTML-skjema.

Kodingstypene verktøyet tilbyr
TypeKoderBruk den til
KomponentAlt unntatt trygge tegnVerdien til en parameter (?navn=verdi).
Hel URLBeholder / ? # & =En fullstendig adresse som allerede er strukturert.
SkjemaMellomrom som +Innholdet i et HTML-skjema.

Ved dekoding blir en feil («100%» eller «%ZZ») lokalisert og forklart; den tolerante modusen dekoder det som er gyldig og lar resten stå. Hvis resultatet fortsatt inneholder %XX-sekvenser, markerer verktøyet dobbel koding og tilbyr å dekode på nytt. Kortet «Analyser en URL» deler en adresse opp i skjema, brukernavn, vert, sti og parametere.

Vanlige feil

  • Å ta Base64 for kryptering og «skjule» et passord i det.
  • Å kode en verdi to ganger og få %2520 i stedet for %20.
  • Å bruke koding av hel URL på verdien til en parameter, som da beholder en ukodet & eller = og ødelegger forespørselen.
  • Å stole på innholdet i en JWT uten å verifisere signaturen.
  • Å miste æ, ø og å ved å kode med en funksjon som ikke går via UTF-8.

Ærlige begrensninger

  • Visningen av et svært langt resultat er forkortet, men kopiering og nedlasting er fullstendige.
  • For å verifisere en JWT trenger du nøkkelen: uten den er det bare mulig å lese den.
  • Ingen av disse tre mekanismene beskytter sensitive data: til det trenger du ekte kryptering.

Vanlige spørsmål

Hvorfor gjør Base64 data større?

Fordi det representerer 3 byte med 4 tegn: volumet øker med en tredjedel (33 %), pluss eventuell utfylling på slutten.

Er Base64 trygt for å skjule informasjon?

Nei. Det har ingen nøkkel og dekodes umiddelbart. Det er ikke kryptering.

Sendes JWT-en min til en server?

Nei. Tokenet, hemmeligheten og nøkkelen blir i nettleseren din.

Hva betyr %20 i en adresse?

Det er et kodet mellomrom: tegnet med kode 0x20 skrives med et % etterfulgt av den heksadesimale verdien.

Hvordan dekoder jeg et Base64-bilde?

Lim inn strengen (med eller uten data:-prefiks) i verktøyet: det gjenkjenner filtypen, viser forhåndsvisningen og tilbyr nedlasting.

Verktøy nevnt i denne veiledningen

Flere veiledninger

Disse veiledningene er skrevet av MaxyTools-teamet ut fra hvordan verktøyene våre faktisk virker. Tallene er enten utregninger du kan gjøre om igjen, eller størrelsesordener som er merket som det. Oppdaget du en feil? Skriv til oss fra kontaktsiden.