En bild inbäddad i en sida som en lång rad bokstäver, en adress där mellanslag blir %20, en inloggningstoken som består av tre block åtskilda av punkter: Base64, URL-kodning och JWT korsar varandra varje dag i webbutveckling. De liknar varandra, förväxlas lätt, och ingen av dem är kryptering. Så här fungerar de på riktigt och så avkodar du dem säkert.
Base64: att göra byte utskrivbara
Base64 representerar binärdata (en bild, en PDF) med bara 64 säkra tecken: A-Z, a-z, 0-9, + och /. Det används överallt där en kanal bara godtar text: e-postbilagor, bilder inbäddade i CSS eller HTML (prefixet data:), token, vissa konfigurationsfiler.
Principen: 3 byte (24 bitar) delas upp i 4 grupper om 6 bitar, var och en representerad av ett tecken. Till exempel blir ”Man” ”TWFu” och ”Hello” blir ”SGVsbG8=” (tecknet = fullbordar det sista ofullständiga blocket). Den numeriska följden: Base64 gör alltid 3 byte till 4 tecken, vilket är +33 % i volym. En bild på 1 MB inbäddad som data: väger ungefär 1,33 MB.
Låt oss upprepa det: Base64 är inte kryptering. Vem som helst avkodar det på ett ögonblick. Använd det aldrig för att ”dölja” ett lösenord.
Koda och avkoda med Base64-kodare och -avkodare
- Välj Koda eller Avkoda och klistra sedan in text eller släpp en fil (högst 24 MB: Base64 lägger på en tredjedel och bortom det skulle fliken bli långsam).
- Text omvandlas till UTF-8 före kodningen: accenter, å, ä, ö, arabiska och emoji överlever tur och retur utan skador, till skillnad från en blott btoa i JavaScript.
- Vid avkodning godtas båda alfabeten (standard och ”URL-säkert” med - och _ i stället för + och /), förekomst eller avsaknad av =, radbrytningar och prefixet data:… automatiskt.
- Om de avkodade byten inte är text identifierar verktyget typen (PNG, JPEG, PDF, ZIP …), förhandsgranskar bilder och erbjuder filen för nedladdning.
- Alternativ för utdata: URL-säker variant, ingen utfyllnad (=), MIME-radbrytningar, prefixet data:.
URL-kodning (procentkodning)
En webbadress kan bara innehålla vissa tecken. De andra ersätts av ett ”%” följt av två hexadecimala siffror som representerar UTF-8-byten. Bokstaven ”å” blir %C3%A5, den arabiska bokstaven ”م” blir %D9%85 och emojin ”😀” blir %F0%9F%98%80 (fyra byte). Ett mellanslag blir %20, eller + i ett klassiskt HTML-formulär.
| Typ | Kodar | Använd det för |
|---|---|---|
| Komponent | Allt utom säkra tecken | Värdet på en parameter (?namn=värde). |
| Hela URL:en | Behåller / ? # & = | En komplett, redan strukturerad adress. |
| Formulär | Mellanslag som + | Innehållet i ett HTML-formulär. |
Vid avkodning lokaliseras och förklaras ett fel (”100%” eller ”%ZZ”); det toleranta läget avkodar det som är giltigt och lämnar resten. Om resultatet fortfarande innehåller %XX-sekvenser flaggar verktyget dubbel kodning och erbjuder att avkoda igen. Kortet ”Analysera en URL” delar upp en adress i schema, användarnamn, värd, sökväg och parametrar.
Vanliga misstag
- Att ta Base64 för kryptering och ”dölja” ett lösenord i det.
- Att koda ett värde två gånger och få %2520 i stället för %20.
- Att använda kodning av hela URL:en på ett parametervärde, som då behåller ett okodat & eller = och förstör anropet.
- Att lita på innehållet i en JWT utan att verifiera dess signatur.
- Att tappa å, ä och ö genom att koda med en funktion som inte går via UTF-8.
Ärliga begränsningar
- Visningen av ett mycket långt resultat kapas, men kopiering och nedladdning är kompletta.
- Att verifiera en JWT kräver nyckeln: utan den går det bara att läsa.
- Ingen av de här tre mekanismerna skyddar känsliga data: för det behövs riktig kryptering.
Vanliga frågor
Varför gör Base64 data större?
För att det representerar 3 byte med 4 tecken: volymen växer med en tredjedel (33 %), plus eventuell avslutande utfyllnad.
Är Base64 säkert för att dölja information?
Nej. Det har ingen nyckel och avkodas direkt. Det är inte kryptering.
Skickas min JWT till en server?
Nej. Token, hemligheten och nyckeln stannar i din webbläsare.
Vad betyder %20 i en adress?
Det är ett kodat mellanslag: tecknet med koden 0x20 skrivs med ett % följt av sitt hexadecimala värde.
Hur avkodar jag en Base64-bild?
Klistra in strängen (med eller utan prefixet data:) i verktyget: det identifierar filtypen, visar förhandsgranskningen och erbjuder nedladdningen.