UltKit

Base64 kódolás és dekódolás

Alakítson szöveget vagy fájlt Base64-re, vagy fejtse vissza a Base64-et olvasható szöveggé. Az Unicode-karaktereket helyesen kezeli, az URL-biztos ábécé egy kattintással elérhető, a dekódolás pedig mindkét ábécét elfogadja, kitöltéssel vagy anélkül.

Mód

0 karakter · 0 szó · 0 sor

0 karakter · 0 szó · 0 sor

Teljes egészében ebben a böngészőlapon fut. A szöveget soha nem töltjük fel és nem tároljuk.

A Base64 ábécé

Index → karakter az RFC 4648 szerint. A kiemelt utolsó kettő az URL-biztos változatban eltér: a 62 + vagy -, a 63 / vagy _.

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

Mekkora lesz a kimenet

Minden 3 bemeneti bájtból 4 karakter lesz; az 1 vagy 2 bájtos utolsó csoportot a szabványos Base64 =-lel tölti ki, az URL-biztos forma kitöltés nélkül hagyja.

BemenetBájtokSzabványosURL-biztosHossz
U1VQ==VQ4
Ul2VWw=VWw4
Ult3VWx0VWx04
UltK4VWx0Sw==VWx0Sw8
UltKi5VWx0S2k=VWx0S2k8
UltKit6VWx0S2l0VWx0S2l08

Mire való a Base64

A Base64, amelyet az RFC 4648 definiál, tetszőleges bájtokat ír le 64 nyomtatható ASCII karakterrel: A–Z, a–z, 0–9, + és /. Minden három bájtos (24 bites) csoportot négy 6 bites számra bont, és mindegyik szám kiválaszt egy karaktert az ábécéből. Ha a bemenet hossza nem többszöröse a háromnak, az utolsó csoportot egy vagy két = jellel egészíti ki. Az eredmény mindig körülbelül 33%-kal nagyobb a bemenetnél: 3 bájtonként 4 karakter.

Azért létezik, mert sok csatornát szövegre terveztek. Az e-mail (MIME), a HTML-ben és CSS-ben használt data: URL-ek, a képeket vagy tanúsítványokat hordozó JSON-mezők és a HTTP Basic hitelesítési fejlécek mind Base64-et használnak a bináris adatok biztonságos továbbításához. Nem titkosítás, semmit sem rejt el; a visszafejtéshez nincs szükség kulcsra.

Az Unicode és az URL-biztos változat

A Base64 bájtokat kódol, nem betűket, ezért a szöveget először bájtokká kell alakítani. Az eszköz mindig UTF-8-at használ, ezt a kódolást használja a web: az é két bájt, egy emoji négy. A böngésző beépített btoa függvénye önmagában hibát dob minden U+00FF feletti karakternél, ezért buknak el az egyszerű kódolók ékezetes betűknél és emojiknál; itt a szöveg előbb a TextEncoderen megy át, a dekódolás pedig TextDecoderrel fordítja vissza. Ha a dekódolt bájtok nem érvényes UTF-8-ak (kép, zip-fájl), az eszköz értelmezhetetlen szöveg helyett hexadecimálisan jeleníti meg őket.

A szabványos Base64 a + és / jeleket használja, amelyeknek az URL-ekben és fájlnevekben jelentésük van. Az RFC 4648 5. szakaszának URL-barát ábécéje ezeket - és _ jelekre cseréli, a kitöltést pedig általában elhagyják. A JSON Web Tokenek pontosan ezt a formát használják. A dekódoló mindkét ábécét és a hiányzó kitöltést is elfogadja, így bármelyiket beillesztheti.

Fájlok és képek kódolása

Válasszon ki egy fájlt, és az eszköz helyben beolvassa a FileReaderrel, majd visszaadja a Base64 értékét vagy egy teljes data: URL-t a fájl MIME-típusával, amelyet közvetlenül beilleszthet egy img címkébe vagy CSS-háttérbe. A beágyazott képek megspórolnak egy HTTP-kérést, de harmadával nagyobbak lesznek, és külön nem gyorsítótárazhatók, ezért inkább kis ikonokhoz valók, mint fotókhoz. Előnézettel és kész HTML- és CSS-részletekkel ellátott képekhez használja a Kép Base64-be eszközt.

Gyakori kérdések

Miért hosszabb a Base64 kimenet, mint a bemenet?
Minden 3 bájtból 4 karakter lesz, így a kimenet a bemenet méretének körülbelül 4/3-a, plusz legfeljebb két kitöltő karakter. A nem ASCII szöveg még hosszabb, mert az UTF-8 karakterenként két-négy bájtot használ.
Mit jelentenek a végén lévő = jelek?
Kitöltés. Ezek teszik néggyel osztható hosszúvá a kimenetet, amikor a bemenet hossza nem osztható hárommal. Egy = azt jelenti, hogy az utolsó csoportban két bájt volt, két = pedig azt, hogy egy bájt.
Miért hiúsul meg a dekódolás érvénytelen karakter hibával?
A bemenet az ábécén kívüli karaktert tartalmaz, például szóközt egy szó belsejében, idézőjelet vagy URL-kódolásból származó %-jelet. A sortöréseket és a hiányzó kitöltést az eszköz elfogadja, más karaktereket nem.
Biztonságos egy jelszót Base64-gyel kódolni?
A Base64 semmilyen védelmet nem nyújt. A HTTP Basic hitelesítés a felhasználó:jelszó párost Base64-ben küldi, ezért csak HTTPS-en szabad használni. Titkok védelmére valódi titkosítást vagy hash-elést használjon.
Mi a különbség a Base64 és a Base64url között?
Csak két karakterben és a kitöltésben: a Base64url a + és / helyett - és _ jelet használ, az = jelet pedig általában elhagyja, így az eredmény escape-elés nélkül elhelyezhető URL-ekben és fájlnevekben.