UltKit

Base64 kódování a dekódování

Převeďte text nebo soubor do Base64, nebo dekódujte Base64 zpět na čitelný text. Unicode se zpracuje správně, abecedu bezpečnou pro URL zapnete jedním kliknutím a dekódování přijme obě abecedy s doplněním i bez něj.

Režim

0 znaků · 0 slov · 0 řádků

0 znaků · 0 slov · 0 řádků

Vše běží přímo v této záložce prohlížeče. Váš text se nikam nenahrává ani neukládá.

Abeceda Base64

Index → znak podle RFC 4648. Zvýrazněné poslední dva se ve variantě bezpečné pro URL liší: 62 je + nebo -, 63 je / nebo _.

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

Jak dlouhý bude výstup

Každé 3 vstupní bajty se změní na 4 znaky; poslední skupina 1 nebo 2 bajtů se ve standardním Base64 doplní znakem = a ve variantě bezpečné pro URL zůstane bez doplnění.

VstupBajtyStandardníBezpečné pro URLDélka
U1VQ==VQ4
Ul2VWw=VWw4
Ult3VWx0VWx04
UltK4VWx0Sw==VWx0Sw8
UltKi5VWx0S2k=VWx0S2k8
UltKit6VWx0S2l0VWx0S2l08

Co dělá Base64

Base64, definované v RFC 4648, zapisuje libovolné bajty pomocí 64 tisknutelných znaků ASCII: A–Z, a–z, 0–9, + a /. Každá skupina tří bajtů (24 bitů) se rozdělí na čtyři 6bitová čísla a každé číslo vybere jeden znak z abecedy. Pokud délka vstupu není násobkem tří, doplní se do poslední skupiny jedno nebo dvě znaménka =. Výsledek je vždy zhruba o 33 % větší než vstup: 4 znaky na každé 3 bajty.

Existuje proto, že mnoho přenosových kanálů vzniklo pro text. E-mail (MIME), adresy data: v HTML a CSS, pole JSON s obrázky nebo certifikáty a hlavičky HTTP Basic autentizace využívají Base64 k bezpečnému přenosu binárních dat. Není to šifrování a nic neskrývá; k dekódování není potřeba žádný klíč.

Unicode a varianta bezpečná pro URL

Base64 kóduje bajty, ne písmena, takže se text musí nejprve převést na bajty. Tento nástroj vždy používá UTF-8, kódování, na kterém běží web: é se změní na dva bajty a emoji na čtyři. Samotná vestavěná funkce prohlížeče btoa vyvolá chybu u každého znaku nad U+00FF, proto jednoduché kodéry selhávají na diakritice a emoji; tady text nejdřív projde přes TextEncoder a dekódování to obrátí pomocí TextDecoder. Pokud dekódované bajty nejsou platné UTF-8 (obrázek, soubor zip), nástroj je místo nesmyslného textu zobrazí šestnáctkově.

Standardní Base64 používá + a /, které mají v adresách URL a názvech souborů zvláštní význam. URL-safe abeceda z oddílu 5 RFC 4648 je nahrazuje znaky - a _ a odsazení se obvykle vynechává. Přesně tuto podobu používají JSON Web Tokeny. Dekodér přijímá obě abecedy i chybějící odsazení, takže můžete vložit kteroukoli variantu.

Kódování souborů a obrázků

Vyberte soubor a nástroj jej načte lokálně pomocí FileReader a vrátí jeho Base64 nebo úplnou adresu data: s typem MIME souboru, kterou stačí vložit do značky img nebo do pozadí v CSS. Vložené obrázky ušetří jeden požadavek HTTP, ale zvětší se o třetinu a nelze je ukládat do mezipaměti zvlášť, takže se hodí spíš pro malé ikony než pro fotky. Pro obrázky s náhledem a hotovými úryvky HTML a CSS použijte Obrázek do Base64.

Často kladené otázky

Proč je výstup v Base64 delší než vstup?
Každé 3 bajty se změní na 4 znaky, takže výstup je zhruba 4/3 velikosti vstupu plus až dva znaky odsazení. Text mimo ASCII je ještě delší, protože UTF-8 používá na znak dva až čtyři bajty.
Co znamenají znaky = na konci?
Odsazení. Díky nim je délka výstupu násobkem čtyř, i když délka vstupu není násobkem tří. Jedno = znamená, že poslední skupina měla dva bajty, dvě == znamenají jeden bajt.
Proč dekódování selže s chybou neplatného znaku?
Vstup obsahuje něco mimo abecedu, například mezeru uvnitř slova, uvozovku nebo % z kódování URL. Zalomení řádků a chybějící odsazení nevadí, jiné znaky ano.
Je bezpečné zakódovat heslo do Base64?
Base64 žádnou ochranu neposkytuje. HTTP Basic autentizace posílá user:password v Base64, proto se smí používat jen přes HTTPS. K ochraně tajných údajů použijte skutečné šifrování nebo hashování.
Jaký je rozdíl mezi Base64 a Base64url?
Jen dva znaky a odsazení: Base64url používá - a _ místo + a / a obvykle vynechává =, takže výsledek může být v adresách URL a názvech souborů bez escapování.