Base64-kodare / -avkodare
Koda eller avkoda Base64-strängar direkt i din webbläsare.
Vad är Base64?
Base64 är ett kodningssätt som gör om binär data till text med hjälp av 64 skrivbara ASCII-tecken: versalerna och gemenerna A–Z och a–z, siffrorna 0–9 samt tecknen + och /. Dessutom används utfyllnadstecknet =. Namnet "Base64" syftar på de 64 tecken som utgör kodningens alfabet.
Syftet med Base64 är att göra godtycklig binär data säker att överföra och lagra i miljöer som bara hanterar text. Många protokoll och system är byggda för att bara hantera skrivbar ASCII-text: e-post (MIME), webbadresser, HTML-attribut, JSON-värden och XML. Base64 är ett pålitligt sätt att bädda in binär data eller Unicode-data i sådana miljöer utan att den skadas eller tolkas fel.
Så fungerar Base64-kodning
Base64-kodningen tar tre byte (24 bitar) av indatan åt gången och delar upp dem i fyra grupper om 6 bitar. Varje grupp om 6 bitar motsvarar ett av de 64 tecknen i Base64-alfabetet (A = 0, B = 1, ... Z = 25, a = 26, ... z = 51, 0 = 52, ... 9 = 61, + = 62, / = 63). Om indatans längd inte är delbar med tre läggs utfyllnadstecken (=) till så att utdatans längd blir delbar med fyra.
Det betyder att Base64 gör datan ungefär 33 % större: tre byte in blir fyra tecken ut. Det är priset för att datan ska kunna passera säkert genom kanaler som bara hanterar text. Därför används Base64 för överföring och inbäddning, inte för komprimering eller allmän lagring.
Vanliga användningsområden för Base64
Bilagor i e-post: MIME-standarden kodar binära bilagor (bilder, PDF-filer, program) som Base64-text så att de kan skickas via e-postservrar som bara hanterar ASCII. Data-URL:er: bilder och andra filer kan bäddas in direkt i HTML eller CSS som Base64-strängar, så att separata filförfrågningar inte behövs; det är praktiskt för små ikoner i e-postmallar eller appar som fungerar utan uppkoppling. Autentisering i API:er: HTTP Basic-autentisering kodar inloggningsuppgifter med Base64 i Authorization-huvudet, men det är ingen kryptering och bör bara användas över HTTPS. JWT-token: JSON Web Tokens kodar sina huvud- och innehållsdelar med Base64Url, en URL-säker variant som ersätter + med - och / med _ och utelämnar utfyllnaden. Kryptografiska data: publika och privata nycklar, certifikat och signaturer lagras och överförs ofta Base64-kodade i PEM-format.
Base64 är inte kryptering
Base64 är inte kryptering. Det är en kodning som kan vändas: vem som helst kan avkoda en Base64-sträng utan nyckel eller lösenord. Den ger ingen säkerhet eller sekretess alls. Omvandlingen är deterministisk och offentlig: samma indata ger alltid samma utdata, och utdatan är enkel att vända tillbaka. Använd aldrig Base64 för att "dölja" känslig information; till det behövs riktig kryptering (AES, RSA eller liknande). Base64 finns bara för formatkompatibilitet, inte för säkerhet.
Vanliga frågor
Varför slutar Base64-utdata med = eller ==?
Tecknen = är utfyllnad. Base64 arbetar med grupper om tre byte in som blir fyra tecken ut. Om indatans längd inte är delbar med tre fylls utdatan ut med ett eller två =-tecken så att längden blir delbar med fyra. Ett = betyder att en utfyllnadsbyte lades till, == att två lades till. Vissa varianter av Base64, som den i JWT, utelämnar utfyllnaden.
Vad är skillnaden mellan Base64 och Base64Url?
Vanlig Base64 använder + och / som tecken nummer 62 och 63, och de är specialtecken i webbadresser. Base64Url ersätter + med - och / med _, så att den kodade strängen kan användas i webbadresser och filnamn utan procentkodning. Base64Url utelämnar oftast också det avslutande =-tecknet. JWT-token använder Base64Url av just det skälet.
Stöder verktyget Unicode och emojier?
Ja. Verktyget gör först om texten till UTF-8-byte och kodar dem sedan med Base64, och vid avkodning gör det om resultatet från UTF-8-byte tillbaka till text. Därför hanterar det alla Unicode-tecken korrekt, även bokstäver med diakritiska tecken (é, å, ä, ö), icke-latinska skriftsystem (arabiska, kinesiska, kyrilliska) och emojier (😀, 🎉, ✅). JavaScripts vanliga funktioner btoa och atob klarar inte flerbytestecken, så verktyget använder TextEncoder och TextDecoder för att hantera UTF-8 rätt.
Hur avkodar jag en Base64-kodad bild?
En Base64-bild inbäddad i HTML ser ut så här: <img src="data:image/png;base64,iVBORw0KGgo...">. För att avkoda den, kopiera Base64-strängen (allt efter kommatecknet), klistra in den i verktygets Base64-fält och klicka på Avkoda. Resultatet är rå binär data som inte är läsbar för människor, eftersom det är bilddata och inte text. För att visa bilden behövs data-URL-formatet.
Base64 i olika programspråk
JavaScript/Node.js: btoa(sträng) kodar till Base64 (bara ASCII) och atob(base64) avkodar. För korrekt UTF-8-stöd, gör om strängen till byte med TextEncoder och bearbeta den som Uint8Array. Python: import base64; base64.b64encode(byteobjekt) och base64.b64decode(base64_sträng). PHP: base64_encode(sträng) och base64_decode(sträng). Java: java.util.Base64.getEncoder().encodeToString(byte) och Base64.getDecoder().decode(sträng). Bash/Linux: echo "text" | base64 kodar och echo "base64sträng" | base64 -d avkodar.