Hoppa till innehåll

Base64-kodare Avkodare - Gratis Online Base64 Konverteringsverktyg

Gratis base64-kodare avkodare verktyg. Konvertera text till Base64 eller avkoda Base64-strängar direkt. Stöder standard- och URL-säker kodning. Ingen inloggning krävs.

Base64-kodare/avkodare

Konvertera text till och från Base64-kodning

Laddningsberäknare...
📚

Dokumentation

Vad är Base64-kodning?

Base64 är ett sätt att omvandla vilken typ av data som helst, däribland binärdata som bilder, till vanlig text som endast består av bokstäver, siffror och några få symboler. En Base64-kodare omvandlar data till detta textformat. En Base64-avkodare omvandlar den tillbaka till ursprungliga data. Program använder Base64 för att transportera binärdata säkert genom system, till exempel e-post eller JSON, som förväntar sig klartext.

Base64 använder ett alfabet med 64 tecken:

  • Versalerna A–Z (26 tecken)
  • Gemenerna a–z (26 tecken)
  • Siffrorna 0–9 (10 tecken)
  • Två symboler, vanligtvis + och / (2 tecken)

Vissa system använder också ett likhetstecken (=) i slutet av resultatet som utfyllnad. Utfyllnaden ingår inte i alfabetet med 64 tecken; den fyller bara ut längden.

Varför Base64 finns

Många äldre textprotokoll, inklusive e-post (SMTP) och vissa delar av HTTP, byggdes för att överföra 7-bitars ASCII-text. De kan förvanska råa binära byte, till exempel byten inuti en JPEG-bild. Base64 undviker detta genom att representera varje byte med endast säkra, skrivbara tecken. Därför går e-postbilagor, bilder som bäddats in i webbsidor och binära fält i JSON ofta först genom Base64.

Base64 är varken komprimering eller kryptering. Den kodade utdata är alltid större än indata, och vem som helst kan avkoda den utan lösenord eller nyckel.

Så använder du verktyget

  1. Skriv eller klistra in text i inmatningsfältet.
  2. Välj ”Koda till Base64” för att omvandla text till Base64, eller ”Avkoda från Base64” för att omvandla en Base64-sträng tillbaka till text.
  3. Aktivera konvertering i realtid om resultatet ska uppdateras automatiskt medan du skriver.
  4. Kopiera resultatet med kopieringsknappen.

Verktyget läser och skriver standardiserad Unicode-text, så att bokstäver med accent, symboler och emoji kodas och avkodas korrekt, inte bara vanliga engelska bokstäver.

Så fungerar Base64-kodning

Base64 omvandlar varje 3 byte indata (24 bitar) till 4 tecken i utdata (vart och ett innehåller 6 bitar), eftersom 24 delat med 6 är lika med 4.

  1. Ta indata-byten och skriv ut dem binärt.
  2. Gruppera bitarna i block om 24 bitar (3 byte).
  3. Dela varje block på 24 bitar i fyra delar om 6 bitar.
  4. Slå upp varje 6-bitars tal (från 0 till 63) i Base64-alfabetet och skriv ned motsvarande tecken.

Om indatalängden inte är en multipel av 3 är det sista blocket kort. Kodaren fyller ut det med nollbitar och lägger sedan till =-tecken i resultatet, så att resultatet fortfarande bildar grupper om 4:

  • En kvarvarande byte ger 2 Base64-tecken plus ==.
  • Två kvarvarande byte ger 3 Base64-tecken plus ett =.

Exempel på Base64-kodning

Kodning av ordet ”Hello”:

  1. ASCII-värden: 72, 101, 108, 108, 111
  2. Binärt: 01001000 01100101 01101100 01101100 01101111
  3. De första 3 byten (24 bitar) delas upp i fyra grupper om 6 bitar: 010010 000110 010101 101100, vilket motsvarar talen 18, 6, 21, 44 → tecknen S, G, V, s.
  4. De återstående 2 byten (16 bitar) delas upp i tre grupper om 6 bitar, med 2 nollbitar tillagda i slutet: 011011 000110 111100, vilket motsvarar talen 27, 6, 60 → tecknen b, G, 8.
  5. Eftersom 2 byte blev över läggs ett = till i slutet.
  6. Resultat: SGVsbG8=

Vid avkodning utförs dessa steg i omvänd ordning: varje tecken mappas tillbaka till sitt 6-bitars tal, bitarna sammanfogas till en ström och strömmen läses sedan ut i 8-bitars byte.

Formel för Base64-kodad längd

För en indata på n byte är den kodade längden i tecken:

encoded_length = 4 × ⌈n / 3⌉

där ⌈x⌉ betyder att avrunda uppåt till närmaste heltal. Formeln visar varför Base64-resultat alltid är ungefär en tredjedel större än indata: 4 tecken i utdata för varje 3 byte indata innebär en ökning på 33 %.

Var Base64 används

  • E-postbilagor (MIME). E-post utformades för text, så filbilagor omvandlas till Base64 innan de skickas, vilket gör den bifogade filen ungefär 33 % större än originalet.
  • Data-URI:er. Små bilder kan bäddas in direkt i HTML eller CSS som text, till exempel data:image/png;base64,iVBORw0KGgo..., vilket eliminerar behovet av en separat filbegäran. Detta fungerar bäst för små filer, eftersom stora filer sväller sidan och inte kan cachas separat.
  • API:er och JSON. JSON har inget inbyggt sätt att lagra rå binärdata, så binärfiler som skickas via ett JSON-API Base64-kodas ofta först.
  • HTTP Basic Authentication. Rubriken Authorization kodar ett användarnamn och lösenord som Base64, till exempel Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=. Detta är inte säkert i sig; inloggningsuppgifterna kan läsas av vem som helst som avlyssnar dem, så Basic Authentication bör endast användas över HTTPS.
  • JSON Web Tokens (JWT). Var och en av de tre delarna i en JWT kodas med Base64URL, en variant som är säker att placera i en URL.
  • Lagra binärdata som text. Databaser eller konfigurationsfiler som endast accepterar text lagrar ibland binärdata som en Base64-sträng.

Base64 jämfört med andra kodningar

URL-säker Base64 ersätter standardtecknen + och / med - och _, eftersom + och / har särskild betydelse i en URL. Den används för JWT:er, URL-frågeparametrar och filnamn. Det här verktyget skapar standardiserad Base64-utdata; för att konvertera till URL-säker form behöver man bara byta ut dessa två tecken.

Base32 använder ett alfabet med 32 tecken, så varje tecken innehåller 5 bitar i stället för 6. Det omvandlar varje 5 byte till 8 tecken, med en overhead på 60 % (8 ÷ 5 = 1,6), jämfört med 33 % för Base64. Base32 väljs när resultatet måste skrivas för hand eller läsas upp i telefon, eftersom det undviker bokstäver i både versaler och gemener samt tecken som lätt förväxlas.

Hexadecimal notation använder 16 tecken (0–9, A–F) och kräver 2 tecken per byte, vilket fördubblar storleken (100 % overhead). Den används ofta för att visa hashvärden, färger och MAC-adresser, där läsbarhet är viktigare än kompakt storlek.

När Base64 inte bör användas

Base64 ökar storleken och processorbelastningen, så det passar dåligt för stora filer som skickas över ett nätverk; att skicka rå binärdata direkt är mindre och snabbare. Det bör aldrig användas för att dölja känslig information som lösenord eller API-nycklar, eftersom avkodning inte kräver någon hemlighet. För lagring av stora filer är en kolumn med binär datatyp i en databas eller en fillagringstjänst vanligtvis bättre än en lång Base64-sträng i ett textfält.

Vanliga misstag

  • Hoppa över UTF-8-konvertering. Text med bokstäver med accent eller emoji kan förvanskas om den kodas utan att först omvandlas till UTF-8-byten.
  • Ta bort utfyllnaden. Vissa system tar bort de avslutande =-tecknen. De flesta avkodare fungerar fortfarande om strängens längd åter fylls ut till en multipel av 4, men alla accepterar inte detta, så det är säkrare att behålla utfyllnaden.
  • Kvarlämnade radbrytningar. Äldre MIME-baserade kodare infogar en radbrytning var 76:e tecken; de flesta moderna avkodare förväntar sig en sammanhängande sträng utan radbrytningar.
  • Blanda ihop varianter. Standard-Base64 och URL-säker Base64 använder olika tecken på samma två platser i alfabetet; avkodning med fel variant ger skräpdata eller ett fel.

Vanliga frågor

Är Base64 en form av kryptering? Nej. Det är en reversibel textkodning, inte kryptering. Vem som helst kan avkoda en Base64-sträng direkt utan lösenord. Använd en krypteringsalgoritm som AES om data måste förbli hemliga.

Varför gör Base64 data större? Eftersom ett helt tecken används för att lagra endast 6 bitar, medan en rå byte innehåller 8 bitar. När 3 byte (24 bitar) omvandlas till 4 tecken blir resultatet 4/3, eller ungefär 33 %, större än indata.

Kan Base64 koda bilder och andra binärfiler? Ja. Alla binärfiler, inklusive bilder, PDF-filer och ljud, kan Base64-kodas och avkodas tillbaka byte för byte. Det används ofta för små bilder som bäddats in i HTML eller CSS, men är ett dåligt val för stora filer.

Vad är skillnaden mellan Base64 och Base64URL? Base64URL ersätter standardtecknen + och / med - och _, så att resultatet kan placeras i en URL eller ett filnamn utan extra escapning. JWT:er använder Base64URL av denna anledning.

Varför ger min Base64-sträng ett ”ogiltigt”-fel vid avkodning? De vanligaste orsakerna är tecken som inte ingår i Base64-alfabetet, till exempel - och _ som används av den URL-säkra varianten, eller en sträng vars längd är ett mer än en multipel av 4. Ingen giltig Base64-sträng har den längden. Avkodningen misslyckas också när de avkodade bytena inte är giltig UTF-8-text. Det här verktyget ignorerar mellanslag och radbrytningar i strängen och avkodar även en sträng där den avslutande utfyllnaden med = har tagits bort.

Var kommer Base64 ifrån? Tekniken går tillbaka till tidiga metoder för att skicka binärdata genom textbaserade e-postsystem på 1980-talet och standardiserades formellt som en del av MIME i RFC 2045 år 1996. Den aktuella referensspecifikationen för Base64, Base32 och Base16 är RFC 4648.