Base64 koda och avkoda
Gör om text eller en fil till Base64, eller avkoda Base64 tillbaka till läsbar text. Unicode hanteras korrekt, det URL-säkra alfabetet är ett klick bort och avkodningen accepterar båda alfabeten, med eller utan utfyllnad.
0 tecken · 0 ord · 0 rader
0 tecken · 0 ord · 0 rader
Körs helt i den här webbläsarfliken. Din text laddas aldrig upp eller sparas.
Base64-alfabetet
Index → tecken enligt RFC 4648. De två sista, markerade, skiljer sig i den URL-säkra varianten: 62 är + eller -, 63 är / eller _.
- 0A
- 1B
- 2C
- 3D
- 4E
- 5F
- 6G
- 7H
- 8I
- 9J
- 10K
- 11L
- 12M
- 13N
- 14O
- 15P
- 16Q
- 17R
- 18S
- 19T
- 20U
- 21V
- 22W
- 23X
- 24Y
- 25Z
- 26a
- 27b
- 28c
- 29d
- 30e
- 31f
- 32g
- 33h
- 34i
- 35j
- 36k
- 37l
- 38m
- 39n
- 40o
- 41p
- 42q
- 43r
- 44s
- 45t
- 46u
- 47v
- 48w
- 49x
- 50y
- 51z
- 520
- 531
- 542
- 553
- 564
- 575
- 586
- 597
- 608
- 619
- 62+ -
- 63/ _
Hur lång utdata blir
Var 3:e indatabyte blir 4 tecken; en sista grupp på 1 eller 2 byte fylls ut med = i standard-Base64 och lämnas utan utfyllnad i den URL-säkra formen.
| Indata | Byte | Standard | URL-säker | Längd |
|---|---|---|---|---|
U | 1 | VQ== | VQ | 4 |
Ul | 2 | VWw= | VWw | 4 |
Ult | 3 | VWx0 | VWx0 | 4 |
UltK | 4 | VWx0Sw== | VWx0Sw | 8 |
UltKi | 5 | VWx0S2k= | VWx0S2k | 8 |
UltKit | 6 | VWx0S2l0 | VWx0S2l0 | 8 |
Vad Base64 gör
Base64, definierat i RFC 4648, skriver godtyckliga bytes med 64 utskrivbara ASCII-tecken: A–Z, a–z, 0–9, + och /. Varje grupp om tre bytes (24 bitar) delas upp i fyra 6-bitarstal, och varje tal väljer ett tecken ur alfabetet. När indatans längd inte är en multipel av tre fylls den sista gruppen ut med ett eller två =-tecken. Resultatet blir alltid ungefär 33 % större än indata: 4 tecken för var 3:e byte.
Det finns eftersom många kanaler byggdes för text. E-post (MIME), data:-URL:er i HTML och CSS, JSON-fält som innehåller bilder eller certifikat och HTTP Basic-autentiseringsrubriker använder alla Base64 för att flytta binärdata på ett säkert sätt. Det är inte kryptering och döljer ingenting; avkodning kräver ingen nyckel.
Unicode och den URL-säkra varianten
Base64 kodar bytes, inte bokstäver, så text måste först omvandlas till bytes. Verktyget använder alltid UTF-8, den kodning som webben bygger på: é blir två bytes och en emoji fyra. Webbläsarens inbyggda funktion btoa ger ensam ett fel för alla tecken över U+00FF, och därför misslyckas naiva kodare med accenter och emojis. Här går texten först genom TextEncoder, och avkodningen vänder det med TextDecoder. Om de avkodade bytena inte är giltig UTF-8 (en bild, en zip-fil) visar verktyget dem som hexadecimala värden i stället för förvrängd text.
Standard-Base64 använder + och /, som har särskilda betydelser i URL:er och filnamn. Det URL-säkra alfabetet från avsnitt 5 i RFC 4648 ersätter dem med - och _, och utfyllnaden utelämnas oftast. JSON Web Tokens använder exakt den här formen. Avkodaren accepterar båda alfabeten och saknad utfyllnad, så du kan klistra in vilken som helst.
Koda filer och bilder
Välj en fil så läser verktyget in den lokalt med FileReader och returnerar dess Base64, eller en komplett data:-URL med filens MIME-typ, redo att klistras in i en img-tagg eller en CSS-bakgrund. Inbäddade bilder sparar en HTTP-förfrågan men blir en tredjedel större och kan inte cachas separat, så de passar för små ikoner snarare än foton. För bilder med förhandsvisning och färdiga HTML- och CSS-kodavsnitt, använd Bild till Base64.
Vanliga frågor
- Varför blir Base64-resultatet längre än det jag matade in?
- Var 3:e byte blir 4 tecken, så utdata blir ungefär 4/3 av indatans storlek, plus upp till två utfyllnadstecken. Text som inte är ASCII blir ännu längre, eftersom UTF-8 använder två till fyra bytes per tecken.
- Vad betyder likhetstecknen (=) i slutet?
- Utfyllnad. Den gör utdatans längd till en multipel av fyra när indatans längd inte är en multipel av tre. Ett = betyder att den sista gruppen hade två bytes, två = betyder att den hade en byte.
- Varför misslyckas avkodningen med ett fel om ogiltigt tecken?
- Indata innehåller något utanför alfabetet, till exempel ett mellanslag mitt i ett ord, ett citattecken eller ett % från URL-kodning. Radbrytningar och saknad utfyllnad tolereras, andra tecken gör det inte.
- Är det säkert att Base64-koda ett lösenord?
- Base64 ger inget skydd. HTTP Basic-autentisering skickar user:password i Base64, och därför får den bara användas över HTTPS. Använd riktig kryptering eller hashning för att skydda hemligheter.
- Vad är skillnaden mellan Base64 och Base64url?
- Bara två tecken och utfyllnaden: Base64url använder - och _ i stället för + och / och utelämnar oftast =, så resultatet kan ligga i URL:er och filnamn utan att behöva escapas.