UltKit

Base64 enkodeer en dekodeer

Skakel teks of 'n lêer om na Base64, of dekodeer Base64 terug na leesbare teks. Unicode word korrek hanteer, die URL-veilige alfabet is net een klik weg, en dekodering aanvaar albei alfabette, met of sonder opvulling.

Modus

0 karakters · 0 woorde · 0 reëls

0 karakters · 0 woorde · 0 reëls

Werk heeltemal in hierdie blaaieroortjie. Jou teks word nooit opgelaai of gestoor nie.

Die Base64-alfabet

Indeks → karakter uit RFC 4648. Die uitgeligte laaste twee verskil in die URL-veilige variant: 62 is + of -, 63 is / of _.

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

Hoe lank die uitvoer word

Elke 3 invoergrepe word 4 karakters; 'n laaste groep van 1 of 2 grepe word in standaard Base64 met = opgevul en in die URL-veilige vorm sonder opvulling gelaat.

InvoerGrepeStandaardURL-veiligLengte
U1VQ==VQ4
Ul2VWw=VWw4
Ult3VWx0VWx04
UltK4VWx0Sw==VWx0Sw8
UltKi5VWx0S2k=VWx0S2k8
UltKit6VWx0S2l0VWx0S2l08

Wat Base64 doen

Base64, omskryf in RFC 4648, skryf arbitrêre grepe met 64 drukbare ASCII-karakters: A–Z, a–z, 0–9, + en /. Elke groep van drie grepe (24 bisse) word in vier 6-bis-getalle verdeel, en elke getal kies een karakter uit die alfabet. As die invoerlengte nie 'n veelvoud van drie is nie, word die laaste groep met een of twee = tekens aangevul. Die resultaat is altyd ongeveer 33% groter as die invoer: 4 karakters vir elke 3 grepe.

Dit bestaan omdat baie kanale vir teks gebou is. E-pos (MIME), data:-URL's in HTML en CSS, JSON-velde wat beelde of sertifikate dra, en HTTP Basic-verifikasiekoppe gebruik almal Base64 om binêre data veilig te vervoer. Dit is nie enkripsie nie en versteek niks nie; ontsyfering vereis geen sleutel nie.

Unicode en die URL-veilige variant

Base64 enkodeer grepe, nie letters nie, dus moet teks eers in grepe omgeskakel word. Hierdie hulpmiddel gebruik altyd UTF-8, die enkodering waarop die web loop: é word twee grepe en 'n emoji vier. Die blaaier se ingeboude btoa-funksie alleen gee 'n fout by enige karakter bo U+00FF, en dis hoekom naïewe enkodeerders by aksente en emoji faal; hier gaan die teks eers deur TextEncoder, en ontsyfering keer dit om met TextDecoder. As ontsyferde grepe nie geldige UTF-8 is nie ('n beeld, 'n zip-lêer), wys die hulpmiddel dit as heksadesimaal in plaas van deurmekaar teks.

Standaard Base64 gebruik + en /, wat in URL's en lêernaam betekenis het. Die URL-veilige alfabet uit afdeling 5 van RFC 4648 vervang hulle met - en _, en die aanvulling word gewoonlik weggelaat. JSON Web Tokens gebruik presies hierdie vorm. Die ontsyferaar aanvaar albei alfabette en ontbrekende aanvulling, so jy kan enige een plak.

Lêers en beelde enkodeer

Kies 'n lêer en die hulpmiddel lees dit plaaslik met FileReader en gee die Base64 daarvan terug, of 'n volledige data:-URL met die lêer se MIME-tipe, gereed om in 'n img-etiket of 'n CSS-agtergrond te plak. Ingebedde beelde spaar 'n HTTP-versoek, maar word 'n derde groter en kan nie apart gekas word nie, so hulle pas by klein ikone eerder as foto's. Vir beelde met 'n voorskou en gereedgemaakte HTML- en CSS-brokkies, gebruik Beeld na Base64.

Gereelde vrae

Waarom is die Base64-uitvoer langer as my invoer?
Elke 3 grepe word 4 karakters, so die uitvoer is ongeveer 4/3 van die invoer se grootte, plus tot twee aanvulkarakters. Nie-ASCII-teks is nog langer, omdat UTF-8 twee tot vier grepe per karakter gebruik.
Wat beteken die =-tekens aan die einde?
Aanvulling. Dit maak die uitvoerlengte 'n veelvoud van vier wanneer die invoerlengte nie 'n veelvoud van drie is nie. Een = beteken die laaste groep het twee grepe gehad, twee = beteken dit het een greep gehad.
Waarom misluk dekodering met 'n fout oor 'n ongeldige karakter?
Die invoer bevat iets buite die alfabet, soos 'n spasie binne 'n woord, 'n aanhalingsteken, of 'n % van URL-enkodering. Reëlbreuke en ontbrekende aanvulling word geduld; ander karakters nie.
Is dit veilig om 'n wagwoord in Base64 te enkodeer?
Base64 bied geen beskerming nie. HTTP Basic-verifikasie stuur user:password in Base64, en dis hoekom dit net oor HTTPS gebruik moet word. Gebruik regte enkripsie of hashing om geheime te beskerm.
Wat is die verskil tussen Base64 en Base64url?
Net twee karakters en die aanvulling: Base64url gebruik - en _ in plaas van + en / en laat gewoonlik = weg, sodat die resultaat sonder ontsnapping in URL's en lêernaam kan wees.