fixmint
HU

A Base64 magyarázata: miért nő meg az adat, és hogyan dekódolható

Szerző: · · frissítve: 2026. november 8. · 5 perces olvasás

A Base64 bináris adatot ír le egyszerű szövegként, 64 karakterrel: A–Z, a–z, 0–9, valamint + és /. Minden három bájt négy karakterré válik, ezért a szöveg körülbelül egyharmadával hosszabb, mint az adat, amit hordoz. Akkor használják, ha a formátum csak szöveget fogad el, például webes oldal data URL-jében, JSON-mezőben vagy e-mail-mellékletben.

Base64 kódoló és dekódolóBase64 szöveg olvasása vagy készítésePróbáld ki ingyen

Miért van szükség rá a szöveges formátumokban

Sok formátumot kizárólag szövegre terveztek. Egy e-mail törzse, egy JSON-fájl és egy CSS-fájl biztonságosan tartalmazhat betűket és jeleket, de egy nyers kép vagy zip-fájl olyan bájtértékeket tartalmaz, amelyeket egyes rendszerek megváltoztathatnak, levághatnak vagy vezérlőkódként értelmezhetnek. A Base64 csak olyan karaktereket használ, amelyeket minden szöveges rendszer változatlanul továbbít, így az adat sértetlenül megérkezik. Az RFC 4648 szabvány határozza meg.

A Base64 kódolás, nem titkosítás. Bárki dekódolhatja kulcs nélkül, ezért jelszó vagy személyes adat elrejtésére soha nem szabad használni.

Hogyan lesz három bájtból négy karakter

Vegyük a Man szót, amely három bájt: tízes számrendszerben 77, 97 és 110. Ez együtt 24 bit. A 24 bitet négy, egyenként hat bites csoportra osztjuk, és minden csoport egy 0 és 63 közötti számot jelent, amely az ábécé egy karakteréhez tartozik. A Man így TWFu lesz.

Hat bit csak 64 értéket tud megnevezni, ezért négy karakter hordoz három bájtot. A kimenet ezért körülbelül egyharmadával nagyobb a bemenetnél, a sortörések hozzáadása előtt.

Ha az adat nem osztható három bájtra, a kódoló a végét =-jelekkel tölti ki. A Ma, amely két bájt, TWE=-vé válik, az M, amely egy bájt, TQ==-vé. A kitöltés megmondja a dekódolónak, hány bájt van az utolsó csoportban.

A szöveget előbb UTF-8-ra kell alakítani

A Base64 bájtokon dolgozik, a szöveg pedig karakterekből áll. Az olyan karakterek, mint az é vagy a ✓, az UTF-8-ban, a weben általánosan használt kódolásban több bájtot foglalnak el. A btoa() böngészőfüggvény a karakterláncot kapja, és minden karaktert egy bájtnak tekint, ezért elbukik az alap latin tartomány fölötti karaktereken. Ha egy pipa jelre hívjuk, InvalidCharacterError hibát dob.

A megoldás az, hogy a szöveget előbb UTF-8 bájtokká alakítjuk, és csak utána kódoljuk ezeket a bájtokat. A héllo ✓ kifejezés UTF-8-ban 10 bájt, Base64-es alakja pedig aMOpbGxvIOKckw==. A Base64 kódoló és dekódoló ezt a lépést elvégzi helyetted. Dekódoláskor a bájtokat UTF-8-ként olvassa vissza. Ha a bájtok nem érvényes UTF-8 szöveg, az eszköz fájlként kezeli őket, és letöltést ajánl.

URL-biztos Base64

A szabványos ábécé a + és a / jeleket tartalmazza. URL-ben a + szóközt is jelenthet, a / pedig az útvonal részeit választja el, ezért a Base64 karakterlánc megtörheti a linket. Az URL-biztos forma (RFC 4648, 5. szakasz) helyette - és _ jeleket használ, és általában elhagyja az = kitöltést. Használd, ha a karakterlánc URL-be, fájlnévbe vagy tokenbe kerül. A dekódoló mindkét formát elfogadja, kitöltéssel vagy anélkül.

Ha a Base64 egy linkből származik, előbb dekódold az URL-t. A linkben százalékosan kódolt értéket előbb dekódolni kell, mielőtt a Base64 olvasható lenne. A százalékos kódolásról szóló útmutató elmagyarázza a linkekre vonatkozó szabályokat.

A bejelentkezési token a leggyakoribb eset: a JSON Web Token három, pontokkal összefűzött Base64url-részből áll: fejléc, adat és aláírás. A JWT dekódoló szétbontja, és a fejlécet és az adatot olvasható JSON-ként mutatja meg.

Data URL-ek és képek

A data URL magát a fájlt a linkbe teszi. Alakja: data:, majd a médiatípus, majd ;base64, végül vessző és az adat. Egy kis kép data:image/png;base64, alakot kap, amelyet a kódolt bájtok követnek. Weboldalak és stíluslapok elfogadják ezt a formát, ami egy kis ikon esetén spórol egy kérést.

Az ára a méret. Az adat körülbelül egyharmadával nagyobb, és az oldal vagy a stíluslap részeként utazik, nem külön fájlként, amelyet a böngésző gyorsítótárazhat. Data URL-t kis képekhez használj, nagy fotókhoz ne. Ha a fotó nagy, tömörítsd kódolás előtt.

Amikor az eszközben Base64-et dekódolsz, az adat első bájtjait vizsgálja. A PNG, JPEG, GIF és WebP fájlok mindegyike ismert azonosítóval kezdődik, így az eszköz előnézetet mutat és letöltést ajánl. Az olyan data URL-t, amelynek képtípusa van, szintén képként jeleníti meg.

Lépésről lépésre a fixminttel

  1. Válaszd a Kódolás vagy a Dekódolás lehetőséget a Szöveg vagy Base64 felett, majd illeszd be a szöveget vagy a Base64-et.
  2. Pipáld be az URL-biztos ábécé, = kitöltés nélkül opciót tokenekhez, fájlnevekhez és linkekhez. A dekódoló így is, úgy is elfogadja.
  3. Fájlból data URL készítéséhez húzd a fájlt a feltöltőterületre, és pipáld be a Fájlok esetén: data: URL kimenet opciót.
  4. Másold ki az eredményt. Ha a dekódolt bájtok szöveg helyett fájl, használd az eszköz által felajánlott letöltést.

Gyakori dekódolási hibák

  • Nem engedélyezett karakter. A bemenet a 64-en kívüli karaktert tartalmaz, például idézőjelet egy másolt mondatból. Nézd meg, honnan származik a szöveg. A másolt szövegben lévő nulla szélességű szóköz ugyanezt a hibát okozza, ezért távolítsd el a rejtett karaktereket, és próbáld újra. A rejtett karakterekről szóló útmutató megmutatja, honnan kerülnek elő.
  • Hibás hossz. Hiányzik vagy felesleges egy karakter, ami általában azt jelenti, hogy a másolás félbeszakadt.
  • Sortörések és szóközök. Az e-mail (MIME) 76 karakterenként tördeli a Base64-et. A dekódoló eltávolítja a szóközöket és sortöréseket, így a tördelt szöveget úgy illesztheted be, ahogy van.
  • Hiányzó kitöltés. Egyes rendszerek elhagyják az =-jeleket. A dekódoló visszateszi őket.

Különleges esetek

  • A dekódolt eredmény értelmetlennek tűnik. Lehet, hogy fájl, nem szöveg. Egy zip-fájl, PDF vagy program olyan bájtokra dekódolódik, amelyek nem olvashatók szövegként. Az eszköz ezeket letöltésként kínálja fel.
  • Nagyon nagy bemenetek. A teljes fájl a böngészőben marad a kódolás vagy dekódolás idejére, ezért egy nagyon nagy fájl lassú lehet, telefonon pedig hibázhat.

Rövid válaszok

Ugyanaz a Base64, mint a titkosítás?

Nem. Visszafordítható kódolás, kulcs nélkül, ezért bárki dekódolhatja.

Miért hosszabb a Base64 a fájlnál?

Minden három bájt négy karakterré lesz, ezért a szöveg körülbelül egyharmadával nagyobb.

Miért nem dekódolódik a másolt Base64-karakterlánc?

Általában egy karakter elveszett vagy hozzáadódott másoláskor, például rossz helyen lévő sortörés vagy hiányzó utolsó karakter. Másold ki újra a forrásból.

A Angol eredeti alapján, MI segítségével fordítva.

Hozzászólások

    Még nincs hozzászólás. Legyél te az első.

    Az értékelésed (nem kötelező)

    Az e-mail-címed sosem jelenik meg, és nem tároljuk.

    How to Remain Valuable When Intelligence Becomes Cheap borítójaHow to Remain Valuable When Intelligence Becomes Cheap

    224 oldal arról, hogy mely emberi, gazdasági és stratégiai előnyök maradnak ritkák akkor is, amikor az MI a legtöbb szellemi munkát elvégzi.

    $3.84Megvásárlás a GumroadonAngolul