Hogyan használd?
- Válaszd ki, hogy kódolni (encode) vagy dekódolni (decode) szeretnél.
- Írd vagy másold be a szöveget a beviteli mezőbe.
- Ha URL-ben vagy tokenben használod, válaszd az URL-biztos változatot.
- Másold ki az eredményt.
Mire jó a Base64 kódoló és dekódoló?
A Base64 kódoló és dekódoló tetszőleges adatot (szöveget vagy bájtokat) alakít át olyan karaktersorozattá, amely csak az angol ábécé betűiből, számjegyekből és néhány jelből áll. Visszafelé is működik: a Base64 szövegből visszaadja az eredetit. Angolul ezt base64 encode és base64 decode néven keresik, az egész eszközt pedig gyakran base64 converter-nek hívják.
A Base64 akkor hasznos, ha bináris vagy különleges karaktereket tartalmazó adatot olyan helyen kell továbbítani, amely csak egyszerű szöveget fogad el. Tipikus példák:
- e-mail-mellékletek (a MIME szabvány így küldi a fájlokat),
- kisebb képek beágyazása HTML-be vagy CSS-be
data:URI formájában, - API-kulcsok és belépési adatok az HTTP Basic hitelesítésben,
- JWT tokenek részei,
- konfigurációs fájlok, amelyekbe bináris tartalmat kell tenni.
Ez különösen fontos, ha tokent vagy jelszót tartalmazó adatot fejtesz vissza.
Hogyan működik a Base64? Kidolgozott példa
A Base64 három bájtot (3 × 8 = 24 bitet) négy darab 6 bites csoportra bont. Minden 6 bites szám (0–63) egy karakternek felel meg: A–Z (0–25), a–z (26–51), 0–9 (52–61), majd + (62) és / (63). Ha a bemenet hossza nem osztható hárommal, a végére = kitöltő karakter kerül.
Nézzük a „Ma” szót:
- A két betű bájtjai:
M= 0x4D,a= 0x61. - Bitekben:
01001101 01100001. - Hatos csoportokra bontva (a végét nullákkal kiegészítve):
010011010110000100. - Ezek értéke: 19, 22, 4, vagyis
T,W,E. - Mivel csak két bájt volt, egy
=kerül a végére:TWE=.
Néhány további példa, amit az eszközzel is ellenőrizhetsz:
| Bemenet | Base64 kimenet |
|---|---|
M | TQ== |
Krux | S3J1eA== |
Hello, World! | SGVsbG8sIFdvcmxkIQ== |
árvíztűrő | w6FydsOtenTFsXLFkQ== |
Az utolsó sor jól mutatja, miért számít a karakterkódolás: az „árvíztűrő” 9 betű, de UTF-8-ban 13 bájt, mert az ékezetes betűk két bájton tárolódnak.
Mennyivel lesz nagyobb az adat?
A Base64 mindig növeli a méretet, mert 3 bájtból 4 karakter lesz. A kimenet hossza (kitöltéssel együtt):
kimenet = 4 × felfelé kerekítve(bemenet bájtban / 3)
| Bemenet | Base64 hossz |
|---|---|
| 3 bájt | 4 karakter |
| 4 bájt | 8 karakter |
| 1000 bájt | 1336 karakter |
| 1 MB (1 048 576 bájt) | 1 398 104 karakter |
Ez nagyjából 33% többlet. Ezért nem érdemes nagy képeket Base64-gyel beágyazni egy weboldalba: a fájl megnő, és a böngésző nem tudja külön gyorsítótárazni. Kis ikonoknál viszont kényelmes megoldás lehet.
Base64 a gyakorlatban: HTTP Basic és data URI
Két helyzet, ahol fejlesztőként szinte biztosan találkozol Base64-gyel:
HTTP Basic hitelesítés. A böngésző vagy a kliens a felhasználónevet és a jelszót kettősponttal összefűzi, majd Base64-re kódolja. A felhasznalo:jelszo szövegből így ZmVsaGFzem5hbG86amVsc3pv lesz, a kérés fejlécében pedig ez áll:
Authorization: Basic ZmVsaGFzem5hbG86amVsc3pv
Ha egy API hívás 401-es hibát ad, érdemes a fejlécben lévő értéket visszafejteni az eszközzel, és megnézni, nem maradt-e benne felesleges szóköz vagy sortörés. Mivel ez kódolás és nem titkosítás, Basic hitelesítést csak titkosított (HTTPS) kapcsolaton használj.
Data URI. Egy kis képet közvetlenül a HTML-be vagy CSS-be is beírhatsz, külön fájl nélkül. A formátum: data: + a fájl típusa + ;base64, + maga a Base64 adat. Ha egy ilyen sztringből vissza szeretnéd nyerni a fájlt, csak a vessző utáni részt dekódold.
Base64 és Base64URL: mikor melyiket válaszd?
A normál Base64 ábécé + és / jelei egy URL-ben vagy fájlnévben bajt okoznak, mert ott különleges jelentésük van. Ezért létezik az URL-biztos változat (Base64URL), amely a + helyett - jelet, a / helyett _ jelet használ.
| Bájtok (hex) | Base64 | Base64URL |
|---|---|---|
FB FF BF | +/+/ | -_-_ |
A Base64URL-nél a végén álló = kitöltést gyakran el is hagyják, például a JWT tokenekben.
- Normál Base64: e-mail,
data:URI, konfigurációs fájlok, a legtöbb API. - Base64URL: URL-paraméterek, fájlnevek, JWT tokenek.
Ha egy dekódolás hibát jelez, és a szövegben - vagy _ szerepel, valószínűleg URL-biztos változatról van szó.
Gyakori hibák és tévhitek
- A Base64 nem titkosítás. Bárki visszafejtheti kulcs nélkül. Jelszót vagy érzékeny adatot ne tekints védettnek csak azért, mert Base64-ben van.
- Rossz karakterkódolás. Ha a dekódolt szövegben
áés hasonló furcsa jelek jelennek meg az ékezetes betűk helyén, az eredeti valószínűleg UTF-8 volt, de más kódolással olvasták (vagy fordítva). Az eszköz UTF-8-at használ. - Hiányzó kitöltés. Ha valaki levágta a végéről az
=jeleket, néhány dekódoló hibát dob. Ilyenkor pótold őket úgy, hogy a hossz néggyel osztható legyen. - Sortörések és szóközök. Az e-mailekből másolt Base64 gyakran 76 karakterenként sortörést tartalmaz. Ezek nem részei az adatnak; dekódolás előtt nyugodtan törölheted őket.
- A
data:előtag. Egydata:image/png;base64,kezdetű szövegnél csak a vessző utáni rész a Base64 adat.
Gyakori kérdések
Biztonságos a Base64?
A Base64 kódolás, nem titkosítás: bárki visszafejtheti. Arra jó, hogy az adat szövegként továbbítható legyen, nem arra, hogy elrejtse.
Miért van egy vagy két egyenlőségjel a Base64 szöveg végén?
Ez a kitöltés. Ha a bemenet bájtjainak száma nem osztható hárommal, egy vagy két = karakter jelzi, hány bájt hiányzott az utolsó hármasból.
Miért lett furcsa jelekkel teli a dekódolt magyar szöveg?
Valószínűleg eltérő karakterkódolással készült a Base64, mint amivel visszafejted. Az eszköz UTF-8-at használ, ami a mai weben szinte mindenhol szabvány.
Mennyivel nagyobb a Base64 kódolt adat az eredetinél?
Nagyjából egyharmadával: minden 3 bájtból 4 karakter lesz. 1000 bájtból például 1336 karakteres Base64 szöveg készül.
Mi a különbség a Base64 és a Base64URL között?
Az URL-biztos változat a + helyett - jelet, a / helyett _ jelet használ, és gyakran elhagyja a végén az = kitöltést. URL-ekben és JWT tokenekben ezt használják.
Feltöltődik valahová a beírt szöveg?
Nem. A kódolás és a dekódolás teljes egészében a böngésződben fut, a szöveg nem kerül fel szerverre.
Források
Utoljára módosítva: 2026. november 3.