UltKit

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.

Modus

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 _.

  1. 0A
  2. 1B
  3. 2C
  4. 3D
  5. 4E
  6. 5F
  7. 6G
  8. 7H
  9. 8I
  10. 9J
  11. 10K
  12. 11L
  13. 12M
  14. 13N
  15. 14O
  16. 15P
  17. 16Q
  18. 17R
  19. 18S
  20. 19T
  21. 20U
  22. 21V
  23. 22W
  24. 23X
  25. 24Y
  26. 25Z
  27. 26a
  28. 27b
  29. 28c
  30. 29d
  31. 30e
  32. 31f
  33. 32g
  34. 33h
  35. 34i
  36. 35j
  37. 36k
  38. 37l
  39. 38m
  40. 39n
  41. 40o
  42. 41p
  43. 42q
  44. 43r
  45. 44s
  46. 45t
  47. 46u
  48. 47v
  49. 48w
  50. 49x
  51. 50y
  52. 51z
  53. 520
  54. 531
  55. 542
  56. 553
  57. 564
  58. 575
  59. 586
  60. 597
  61. 608
  62. 619
  63. 62+ -
  64. 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.

InndataByteStandardURL-sikkerLengde
U1VQ==VQ4
Ul2VWw=VWw4
Ult3VWx0VWx04
UltK4VWx0Sw==VWx0Sw8
UltKi5VWx0S2k=VWx0S2k8
UltKit6VWx0S2l0VWx0S2l08

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.