Base64 koding og dekoding
Gjør tekst eller en fil om til Base64, eller dekod Base64 tilbake til lesbar tekst. Unicode håndteres riktig, det URL-sikre alfabetet er ett klikk unna, og dekodingen godtar begge alfabetene med eller uten utfylling.
0 tegn · 0 ord · 0 linjer
0 tegn · 0 ord · 0 linjer
Kjører helt i denne nettleserfanen. Teksten din lastes aldri opp eller lagres.
Base64-alfabetet
Indeks → tegn fra RFC 4648. De to siste, utheva tegnene er forskjellige i den URL-sikre varianten: 62 er + eller -, 63 er / 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/ _
Hvor lang utdataen blir
Hver 3 inndatabyte blir til 4 tegn; en siste gruppe på 1 eller 2 byte fylles med = i standard Base64 og står uten padding i den URL-sikre formen.
| Inndata | Byte | Standard | URL-sikker | Lengde |
|---|---|---|---|---|
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 |
Hva Base64 gjør
Base64, definert i RFC 4648, skriver vilkårlige byte med 64 skrivbare ASCII-tegn: A–Z, a–z, 0–9, + og /. Hver gruppe på tre byte (24 bit) deles i fire 6-biters tall, og hvert tall velger ett tegn fra alfabetet. Hvis inndataene ikke har en lengde som er delelig med tre, fylles den siste gruppen ut med ett eller to likhetstegn (=). Resultatet blir alltid omtrent 33 % større enn inndataene: 4 tegn for hver 3 byte.
Det finnes fordi mange kanaler ble bygget for tekst. E-post (MIME), data:-URL-er i HTML og CSS, JSON-felt som bærer bilder eller sertifikater, og HTTP Basic-autentiseringsoverskrifter bruker alle Base64 for å flytte binære data trygt. Det er ikke kryptering og skjuler ingenting; avkoding krever ingen nøkkel.
Unicode og den URL-sikre varianten
Base64 koder byte, ikke bokstaver, så tekst må først gjøres om til byte. Dette verktøyet bruker alltid UTF-8, kodingen nettet bygger på: é blir to byte og en emoji fire. Nettleserens innebygde funksjon btoa gir alene en feil ved tegn over U+00FF, og derfor feiler enkle kodere på aksenter og emojier. Her går teksten gjennom TextEncoder først, og avkodingen reverserer det med TextDecoder. Hvis de avkodede byteene ikke er gyldig UTF-8 (et bilde, en zip-fil), viser verktøyet dem som heksadesimal i stedet for uleselig tekst.
Standard Base64 bruker + og /, som har egne betydninger i URL-er og filnavn. Det URL-trygge alfabetet fra avsnitt 5 i RFC 4648 erstatter dem med - og _, og utfyllingen utelates vanligvis. JSON Web Tokens bruker nøyaktig denne formen. Avkoderen godtar begge alfabetene og manglende utfylling, så du kan lime inn begge deler.
Koding av filer og bilder
Velg en fil, så leser verktøyet den lokalt med FileReader og gir deg Base64-teksten, eller en komplett data:-URL med filens MIME-type, klar til å limes inn i en img-tagg eller en CSS-bakgrunn. Innebygde bilder sparer en HTTP-forespørsel, men blir en tredjedel større og kan ikke bufres hver for seg, så de passer for små ikoner, ikke bilder. For bilder med forhåndsvisning og ferdige HTML- og CSS-snutter, bruk Bilde til Base64.
Ofte stilte spørsmål
- Hvorfor blir Base64-resultatet lengre enn det jeg la inn?
- Hver 3 byte blir til 4 tegn, så utdataene er omtrent 4/3 av størrelsen på inndataene, pluss opptil to utfyllingstegn. Tekst utenfor ASCII blir enda lengre, fordi UTF-8 bruker to til fire byte per tegn.
- Hva betyr likhetstegnene (=) på slutten?
- Utfylling. De gjør at lengden på utdataene blir et multiplum av fire når inndataene ikke har en lengde som er delelig med tre. Ett = betyr at siste gruppe hadde to byte, to = betyr at den hadde én byte.
- Hvorfor feiler dekodingen med en feil om ugyldig tegn?
- Inndataene inneholder noe utenfor alfabetet, for eksempel et mellomrom midt i et ord, et sitattegn eller en % fra URL-koding. Linjeskift og manglende utfylling tolereres; andre tegn gjør det ikke.
- Er det trygt å Base64-kode et passord?
- Base64 gir ingen beskyttelse. HTTP Basic-autentisering sender bruker:passord i Base64, og derfor må den bare brukes over HTTPS. Bruk ekte kryptering eller hashing for å beskytte hemmeligheter.
- Hva er forskjellen mellom Base64 og Base64url?
- Bare to tegn og utfyllingen: Base64url bruker - og _ i stedet for + og / og utelater vanligvis =, slik at resultatet kan stå i URL-er og filnavn uten escaping.