UltKit

Base64 kodiranje in dekodiranje

Pretvorite besedilo ali datoteko v Base64 ali dekodirajte Base64 nazaj v berljivo besedilo. Unicode je obravnavan pravilno, abeceda, varna za URL, je oddaljena le en klik, dekodiranje pa sprejme obe abecedi, z zapolnitvijo ali brez nje.

Način

0 znakov · 0 besed · 0 vrstic

0 znakov · 0 besed · 0 vrstic

Deluje povsem v tem zavihku brskalnika. Vaše besedilo se nikoli ne naloži in ne shrani.

Abeceda Base64

Indeks → znak po RFC 4648. Označena zadnja dva se razlikujeta v različici, varni za URL: 62 je + ali -, 63 je / ali _.

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

Kako dolg postane izpis

Vsi 3 vhodni bajti postanejo 4 znaki; končna skupina 1 ali 2 bajtov je v standardnem Base64 dopolnjena z =, v obliki, varni za URL, pa ostane brez polnila.

VnosBajtiStandardnoVarno za URLDolžina
U1VQ==VQ4
Ul2VWw=VWw4
Ult3VWx0VWx04
UltK4VWx0Sw==VWx0Sw8
UltKi5VWx0S2k=VWx0S2k8
UltKit6VWx0S2l0VWx0S2l08

Kaj počne Base64

Base64, opredeljen v RFC 4648, zapiše poljubne bajte z 64 izpisljivimi znaki ASCII: A–Z, a–z, 0–9, + in /. Vsaka skupina treh bajtov (24 bitov) se razdeli na štiri 6-bitna števila, vsako število pa izbere en znak iz abecede. Če dolžina vhoda ni večkratnik števila tri, se zadnja skupina dopolni z enim ali dvema znakoma =. Rezultat je vedno približno 33 % večji od vhoda: 4 znaki na vsake 3 bajte.

Obstaja, ker so bili številni kanali zasnovani za besedilo. E-pošta (MIME), URL-ji data: v HTML in CSS, polja JSON, ki prenašajo slike ali potrdila, in glave osnovne overitve HTTP Basic uporabljajo Base64 za varen prenos dvojiških podatkov. Ni šifriranje in ničesar ne skrije; za dekodiranje ni potreben noben ključ.

Unicode in različica, varna za URL

Base64 kodira bajte, ne črk, zato je treba besedilo najprej pretvoriti v bajte. To orodje vedno uporablja UTF-8, kodiranje, na katerem teče splet: é postane dva bajta, emoji pa štirje. Vgrajena funkcija brskalnika btoa sama vrže napako pri vsakem znaku nad U+00FF, zato preprosti kodirniki odpovejo pri šumnikih in emojijih; tu gre besedilo najprej skozi TextEncoder, dekodiranje pa to obrne s TextDecoder. Če dekodirani bajti niso veljaven UTF-8 (slika, datoteka zip), jih orodje namesto popačenega besedila prikaže kot šestnajstiško vrednost.

Standardni Base64 uporablja + in /, ki imata v URL-jih in imenih datotek poseben pomen. Abeceda, varna za URL, iz 5. razdelka RFC 4648 ju nadomesti z - in _, dopolnilni znaki pa se običajno izpustijo. Natanko to obliko uporabljajo spletni žetoni JSON Web Token. Dekodirnik sprejme obe abecedi in manjkajoče dopolnilne znake, zato lahko prilepite katero koli.

Kodiranje datotek in slik

Izberite datoteko in orodje jo prebere lokalno s FileReader ter vrne njen Base64 ali popoln URL data: z vrsto MIME datoteke, pripravljen za prilepitev v oznako img ali ozadje CSS. Vdelane slike prihranijo en zahtevek HTTP, vendar so za tretjino večje in jih ni mogoče ločeno predpomniti, zato so primerne za majhne ikone, ne za fotografije. Za slike s predogledom in pripravljenimi izseki HTML in CSS uporabite Slika v Base64.

Pogosto zastavljena vprašanja

Zakaj je izhod Base64 daljši od vhoda?
Vsaki 3 bajti postanejo 4 znaki, zato je izhod velik približno 4/3 vhoda, poleg tega do dva dopolnilna znaka. Besedilo, ki ni ASCII, je še daljše, ker UTF-8 uporablja od dva do štiri bajte na znak.
Kaj pomenijo znaki = na koncu?
Dopolnilo. Zaradi njih je dolžina izhoda večkratnik števila štiri, kadar dolžina vhoda ni večkratnik števila tri. En znak = pomeni, da je imela zadnja skupina dva bajta, dva znaka = pa, da je imela en bajt.
Zakaj dekodiranje javi napako zaradi neveljavnega znaka?
Vhod vsebuje nekaj zunaj abecede, na primer presledek znotraj besede, narekovaj ali znak % iz kodiranja URL. Prelomi vrstic in manjkajoče dopolnilo so dovoljeni, drugi znaki pa ne.
Ali je varno geslo kodirati v Base64?
Base64 ne nudi nobene zaščite. Osnovna overitev HTTP Basic pošilja user:password v Base64, zato jo smete uporabljati le prek HTTPS. Za zaščito skrivnosti uporabite pravo šifriranje ali zgoščevanje.
Kakšna je razlika med Base64 in Base64url?
Samo dva znaka in dopolnilo: Base64url uporablja - in _ namesto + in / ter običajno izpusti =, zato je rezultat mogoče uporabiti v URL-jih in imenih datotek brez ubežnih zaporedij.