UltKit

Base64 kódovanie a dekódovanie

Zakódujte text alebo súbor do Base64, prípadne dekódujte Base64 späť na čitateľný text. Unicode sa spracuje správne, URL-safe abecedu zapnete jedným kliknutím a dekódovanie prijme obe abecedy s doplnením aj bez neho.

Režim

0 znakov · 0 slov · 0 riadkov

0 znakov · 0 slov · 0 riadkov

Všetko prebieha priamo v tejto karte prehliadača. Váš text sa nikdy nenahráva ani neukladá.

Abeceda Base64

Index → znak podľa RFC 4648. Zvýraznené posledné dva sa vo variante bezpečnom pre URL líšia: 62 je + alebo -, 63 je / alebo _.

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

Aký dlhý bude výstup

Každé 3 vstupné bajty sa zmenia na 4 znaky; posledná skupina 1 alebo 2 bajtov sa v štandardnom Base64 dopĺňa znakom = a vo variante bezpečnom pre URL zostáva bez výplne.

VstupBajtyŠtandardnýBezpečný pre URLDĺžka
U1VQ==VQ4
Ul2VWw=VWw4
Ult3VWx0VWx04
UltK4VWx0Sw==VWx0Sw8
UltKi5VWx0S2k=VWx0S2k8
UltKit6VWx0S2l0VWx0S2l08

Čo robí Base64

Base64, definovaný v RFC 4648, zapisuje ľubovoľné bajty pomocou 64 tlačiteľných znakov ASCII: A–Z, a–z, 0–9, + a /. Každá trojica bajtov (24 bitov) sa rozdelí na štyri 6-bitové čísla a každé číslo vyberie jeden znak z abecedy. Ak dĺžka vstupu nie je násobkom troch, posledná skupina sa doplní jedným alebo dvoma znakmi =. Výsledok je vždy približne o 33 % väčší ako vstup: 4 znaky na každé 3 bajty.

Existuje preto, že mnohé kanály vznikli pre text. E-mail (MIME), adresy data: v HTML a CSS, polia JSON s obrázkami alebo certifikátmi aj hlavičky HTTP Basic autentifikácie používajú Base64 na bezpečný prenos binárnych dát. Nie je to šifrovanie a nič neskrýva; dekódovanie nepotrebuje žiadny kľúč.

Unicode a URL-safe variant

Base64 kóduje bajty, nie písmená, takže text sa musí najprv previesť na bajty. Tento nástroj vždy používa UTF-8, kódovanie, na ktorom beží web: é sa zmení na dva bajty a emoji na štyri. Samotná vstavaná funkcia prehliadača btoa vyhodí chybu pri každom znaku nad U+00FF, preto jednoduché kódovače zlyhávajú pri diakritike a emoji; tu text najprv prejde cez TextEncoder a dekódovanie ho vracia späť cez TextDecoder. Ak dekódované bajty nie sú platné UTF-8 (obrázok, súbor zip), nástroj ich namiesto skomolenéhoho textu zobrazí hexadecimálne.

Štandardný Base64 používa + a /, ktoré majú v URL adresách a názvoch súborov špeciálny význam. URL-bezpečná abeceda z časti 5 RFC 4648 ich nahrádza znakmi - a _ a výplň sa zvyčajne vynecháva. Presne túto podobu používajú JSON Web Tokeny. Dekodér akceptuje obe abecedy aj chýbajúcu výplň, takže môžete vložiť ktorúkoľvek.

Kódovanie súborov a obrázkov

Vyberte súbor a nástroj ho lokálne načíta cez FileReader a vráti jeho Base64 alebo úplnú adresu data: s typom MIME súboru, pripravenú na vloženie do značky img alebo do pozadia v CSS. Vložené obrázky ušetria jednu požiadavku HTTP, no zväčšia sa o tretinu a nedajú sa ukladať do vyrovnávacej pamäte samostatne, preto sa hodia skôr na malé ikony než na fotky. Na obrázky s náhľadom a hotovými úryvkami HTML a CSS použite Obrázok na Base64.

Často kladené otázky

Prečo je výstup v Base64 dlhší ako vstup?
Každé 3 bajty sa zmenia na 4 znaky, takže výstup má približne 4/3 veľkosti vstupu plus najviac dva znaky výplne. Text mimo ASCII je ešte dlhší, pretože UTF-8 používa na znak dva až štyri bajty.
Čo znamenajú znaky = na konci?
Výplň. Vďaka nej je dĺžka výstupu násobkom štyroch, keď dĺžka vstupu nie je násobkom troch. Jedno = znamená, že posledná skupina mala dva bajty, dve == znamenajú, že mala jeden bajt.
Prečo dekódovanie zlyhá s chybou neplatného znaku?
Vstup obsahuje niečo mimo abecedy, napríklad medzeru vnútri slova, úvodzovku alebo % z kódovania URL. Zalomenia riadkov a chýbajúca výplň sa tolerujú; iné znaky nie.
Je bezpečné zakódovať heslo do Base64?
Base64 neponúka žiadnu ochranu. HTTP Basic autentifikácia posiela user:password v Base64, preto sa smie používať iba cez HTTPS. Na ochranu tajomstiev použite skutočné šifrovanie alebo hashovanie.
Aký je rozdiel medzi Base64 a Base64url?
Líši sa len v dvoch znakoch a výplni: Base64url používa - a _ namiesto + a / a zvyčajne vynecháva =, takže výsledok môže byť v URL adresách a názvoch súborov bez escapovania.