Utilia

Base64 kódoló és dekódoló

Ingyenes Base64 kódoló és dekódoló teljes UTF-8 támogatással és URL-barát base64url opcióval. A böngésződben fut, semmit nem töltünk fel.

Hogyan használd a Base64 kódolót és dekódolót

  1. Válaszd ki, hogy szöveget szeretnél Kódolás útján Base64-gyé alakítani, vagy Base64-et szeretnél Dekódolás útján szöveggé visszaalakítani.
  2. Írd vagy illeszd be a bemenetet a szövegmezőbe. Az ékezetes betűk, a nem latin írásrendszerek és az emojik is támogatottak.
  3. Ha az eredményt URL-ben, fájlnévben vagy JSON Web Tokenben használod, kapcsold be az URL-barát (base64url) opciót, hogy a base64url változatot kapd.
  4. Olvasd le az eredményt, és másold ki. Ha dekódolsz, és a bemenet nem érvényes Base64, hibaüzenet jelzi, ahelyett hogy értelmetlen szöveget adna.

Mi az a Base64?

A Base64 egy módszer tetszőleges bájtok ábrázolására mindössze 64 nyomtatható ASCII karakterrel: a nagybetűs A–Z, a kisbetűs a–z, a 0–9 számjegyekkel, valamint a + és a / jellel. A = karakter a végén kitöltésként (paddingként) szolgál. Azért létezik, mert sok rendszert szövegek szállítására terveztek, nem nyers bináris adatokéra. Az e-mailek törzse, a HTTP-fejlécek, az XML- és JSON-dokumentumok, valamint az adat-URL-ek olyan karaktereket várnak, amelyek átvészelik a másolást, a naplózást és az átvitelt anélkül, hogy megváltoznának.

Az algoritmus három bájtos (24 bites) csoportokon dolgozik, és négy darab 6 bites értékre bontja őket, amelyek mindegyike a 64 karakter egyikének felel meg. Ezért lesz a Base64 kimenet mindig nagyjából 33%-kal nagyobb a bemenetnél: minden 3 bájtból 4 karakter lesz. Ha a bemenet hossza nem többszöröse a háromnak, egy vagy két = jel kerül a végére, hogy a kimenet hossza néggyel osztható legyen. A Hi szó például SGk=, a Hello pedig SGVsbG8= lesz.

Szöveg, bájtok és UTF-8

A Base64 bájtokat kódol, nem karaktereket, ezért a szöveget először bájtokká kell alakítani. Ez az eszköz UTF-8-at használ, ezt a kódolást alkalmazza szinte minden modern weboldal és API. Így a café szóból Y2Fmw6k= lesz, egy emoji, például a 👍 (UTF-8-ban négy bájt) pedig helyesen kódolódik, és ugyanazzá az emojivá dekódolódik vissza. Sok gyors szkript, amely a böngésző régi btoa() függvényére épít, a Latin-1 tartományon kívüli karaktereknél hibázik; ennél az eszköznél nincs ilyen korlát.

Szabványos Base64 és base64url

A szabványos Base64 a + és a / jelet használja, amelyeknek különleges jelentésük van az URL-ekben és a fájlútvonalakban. Az URL-barát változat, a base64url a + helyett -, a / helyett _ jelet használ, és általában elhagyja a = kitöltést. Ez a formátum szerepel a JSON Web Tokenekben (JWT), számos OAuth-paraméterben és az URL-rövidítőkben. Kapcsold be az URL-barát opciót, ha erre a formátumra van szükséged, és hagyd kikapcsolva az e-mail-mellékletekhez, az adat-URL-ekhez vagy a szabványos Base64-et váró konfigurációs fájlokhoz.

A Base64 nem titkosítás

Ez a leggyakoribb félreértés. A Base64 kódolás: nincs kulcsa és nincs titka, bárki azonnal visszafejtheti. Ha egy jelszót, egy API-kulcsot vagy személyes adatot Base64-gyel kódolsz, az semmilyen védelmet nem jelent. A HTTP Basic hitelesítés például a felhasználónév:jelszó párost Base64-ben küldi, ezért kizárólag HTTPS-en szabad használni. Ha bizalmasságra van szükséged, valódi titkosítást (például AES-t) vagy jelszó-hasht (például Argon2-t vagy bcryptet) használj, ne Base64-et.

Adatvédelem

Minden kódolás és dekódolás helyben, a böngésződben, JavaScripttel történik. A beírt szöveget soha nem küldjük el szervernek, nem tároljuk és nem naplózzuk, így nyugodtan megvizsgálhatsz tokeneket vagy konfigurációs értékeket. Ez az eszköz csak szöveggel dolgozik, fájlfeltöltést nem fogad.

Gyakori kérdések

Miért néz ki úgy a dekódolt szövegem, mint véletlenszerű jelek?

A Base64-karakterlánc valószínűleg bináris adatot képvisel, például képet, tömörített fájlt vagy titkosított tartalmat, nem szöveget. A dekódolás érvényes bájtokat ad, de azok nem értelmes UTF-8 szöveget alkotnak. Az is előfordulhat, hogy az eredeti szöveget az UTF-8-tól eltérő karakterkészlettel kódolták.

Miért mondja az eszköz, hogy érvénytelen a Base64-em?

Az érvényes Base64 csak a 64 megengedett karaktert és az opcionális = kitöltést tartalmazza, a hosszának pedig illeszkednie kell a 4 karakteres csoportosításhoz. Gyakori ok a véletlenül bemásolt felesleges karakter, a megcsonkított karakterlánc, vagy egy base64url karakterlánc (- és _ jelekkel), amelyet az URL-barát opció bekapcsolása nélkül dekódolsz.

Kódolhatok képeket vagy más fájlokat?

Nem. Ez az eszköz kizárólag szövegre készült. Ha képet szeretnél beágyazni HTML-be vagy CSS-be, olyan eszközre van szükséged, amely beolvassa a fájl nyers bájtjait, és adat-URL-t állít elő belőlük.

Biztonságos a Base64 jelszavak tárolására?

Nem. A Base64-et bárki a másodperc törtrésze alatt dekódolhatja. A jelszavakat erre szolgáló, lassú hash-algoritmussal kell tárolni, például Argon2, scrypt vagy bcrypt használatával.

Mi a különbség a kitöltéses és a kitöltés nélküli Base64 között?

A = kitöltés csak azt éri el, hogy a kimenet hossza néggyel osztható legyen, információt nem hordoz. A legtöbb dekóder nélküle is vissza tudja állítani az adatot. A base64url gyakran elhagyja a kitöltést, mert a = maga is fenntartott karakter az URL-ekben.