Tech Help
Miért növeli a Base64 a fájlméretet?
A Base64 általában körülbelül egyharmaddal növeli a bináris adatot. Nézze a 3 bájt → 4 karakter szerkezetet, a kitöltést, a Data URL többletet, és mikor éri meg a plusz méret.
A Base64 általában körülbelül egyharmaddal növeli a bináris adatot, mert minden 3 bináris bájtot 4 nyomtatható Base64 karakterrel ábrázol.
Ha a bemenet hossza nem pontosan 3 többszöröse, a szabványos kitöltött Base64 = jeleket tehet hozzá. A kódolt hossz 4 × ceil(n / 3), ahol n az eredeti bájthossz.
A „körülbelül 33%” nagy bemenetre vonatkozik. Apró bemenetnél a kitöltés miatt a százalék sokkal nagyobbnak tűnhet. A Base64 nem tömörítés. Kódolás kontra titkosítás: [A Base64 nem titkosítás: mit csinál valójában](/hu/story/base64-is-not-encryption).
Ez a cikk azt magyarázza, miért nagyobb a Base64 kimenet, mint az eredeti bájtok. Nem biztonsági útmutató. Kódolás kontra titkosításhoz használja a A Base64 nem titkosítás: mit csinál valójában cikket.
Miért kell a Base64-nek több hely?
3 bájt 24 bit. A Base64 ezt a 24 bitet 4 darab 6 bites csoportra osztja. Minden csoport egy Base64 karakterre képeződik, így 3 bemeneti bájtból 4 kimeneti karakter lesz. ASCII karakterenként 1 bájttal tárolva ez 4 / 3 ≈ 1,333 — körülbelül 33,3% növekedés.
- 3 bájt (24 bit)
- 4 darab 6 bites csoportra osztva
- Minden csoport → egy Base64 karakter
- 4 karakter (gyakran 4 bájt szöveg)
Egyszerű, ellenőrizhető példa
Ezek a kódolások a szabványos kitöltött Base64-nek felelnek meg.
Man
Man
Base64
TWFu
A Man 3 UTF-8/ASCII bájt. A TWFu 4 karakter: 3 → 4.
Hello
Hello
Base64
SGVsbG8=
A Hello 5 bájt. Az SGVsbG8= 8 karakter, benne egy =. Kis adaton a kitöltés miatt a százalék 33%-nál nagyobbnak látszik.
Hogyan számolja a Base64 méretét?
Szabványos kitöltött Base64-nél encodedLength = 4 × ceil(originalBytes / 3).
| Eredeti bájtok | Base64 karakterek |
|---|---|
| 1 | 4 |
| 2 | 4 |
| 3 | 4 |
| 4 | 8 |
| 5 | 8 |
| 6 | 8 |
1 vagy 2 bájt is 4 karaktert ad. A képletet használja, ne rögzített 33%-ot.
Mit jelent a „=” kitöltés?
A = jel azt mutatja, hogy az utolsó 3 bájtos blokk nem volt tele. 1 bemeneti bájt két = jelet használ; 2 bájt egyet; 3 bájt egyet sem. A kitöltés nem titkosítás és nem biztonsági funkció.
Kevesebb helyet foglal a Base64URL?
A Base64URL a + jelet - jelre, a / jelet _ jelre cseréli, és a Base64 kódolás kódoláskor elhagyja a záró = jeleket. Ettől a sztring azokkal a = jelekkel rövidebb lehet. A 3 bájt → 4 karakter szerkezet ugyanaz marad, tehát a Base64URL nem helytakarékosabb bináris formátum.
Miért nőhet apró bemenet 33%-nál jobban?
1 bájt → 4 karakter 300% hossznövekedés. 2 bájt → 4 az 100%. 3 bájt → 4 körülbelül 33,3%. Ahogy n nő, a kitöltés kevésbé számít, a többlet pedig körülbelül 33%-hoz közelít. A Base64 nem mindig pontosan 33%-kal nagyobb.
Miért még nagyobb egy Base64 Data URL?
A Data URL előtagot tesz a hasznos teher elé, például data:image/png;base64,. Apró fájlnál ez az előtag uralhatja a százalékot. A Base64 kódolás nyers Base64-et vagy Data URL-t adhat; a Data URL kimenet a szabványos ábécét használja.
Base64 vs bináris: melyik a kisebb?
A nyers bináris helytakarékosabb szállításra és tárolásra. A Base64 nagyobb, de szövegbiztos JSON-ban, e-mailben és más csak-szöveges utakon. Binárisból szövegbe kódolás, nem tömörítés.
Tömörít a Base64 fájlokat?
Nem. A Base64 nem tömörítési formátum. A kódolt szöveg általában nagyobb, mint az eredeti bájtok. Ha később gzipet vagy Brotlit alkalmaz arra a szövegre, némi redundancia zsugorodhat—az eredmény az adattól és a tömörítőtől függ. A gzip nem távolítja el teljesen a Base64 többletet.
Mi történik, ha a Base64-et gzippelik?
A HTTP tömörítés csökkenthet néhány ismétlődő mintát a Base64 szövegben. A JPEG, PNG vagy ZIP gyakran rosszul tömörül nyers bájtként is, és a Base64-majd-gzip továbbra is esettől függ. gzip után nincs univerzális extra százalék.
Érdemes fájlokat Base64-ként tárolni?
A Base64 beleférhet binárisba JSON mezőben, kis beágyazott erőforrásba, csak-szöveges API-ba, másolás/beillesztésbe vagy Data URL-be. Nagy fájloknál a tárolás, a memória és a terhelés mind nő. Ez nem azt jelenti, hogy „soha ne használjon Base64-et fájlokhoz”.
Miért gyakori a Base64 JSON API-kban?
A JSON-nak nincs natív nyers bináris típusa, ezért az API-k gyakran Base64 sztringbe teszik a bájtokat. Nagy fájloknál a multipart/form-data, objektumtároló vagy közvetlen bináris feltöltés jobban illeszkedhet. Egyik választás sem mindig a legjobb.
Miért használnak Base64-et e-mailben?
A MIME Base64-et használhat, hogy a bináris melléklet szövegbiztos karakterként utazzon. Ugyanaz a mérettöbblet érvényes. Ez szállítási ábrázolás, nem kisebb fájl.
Mikor éri meg a plusz méret?
A plusz méret megérheti, ha a binárisnak szövegben kell lennie, a terhelés kicsi, az API Base64-et kér, vagy Data URL kell. Nagy médiánál nyers binárist válasszon, ha a rendszer engedi.
Mikor kerülje a Base64-et?
Hagyja ki nagy fájloknál, szűk sávszélességnél, gyakori átvitelnél, vagy ha már van bináris út—helyzettől függ, nem „a Base64 rossz gyakorlat”.
Kitöltött Base64 hosszak, amelyeket ellenőrizhet
Eredeti bájtszámok és szabványos kitöltött Base64 karakterszámok:
| Eredeti bájtok | Base64 karakterek |
|---|---|
| 1 | 4 |
| 2 | 4 |
| 3 | 4 |
| 10 | 16 |
| 100 | 136 |
| 1,000 | 1,336 |
Minden sor a 4 × ceil(n / 3) képletet követi. Ezek Base64 karakterszámok.
Példa: Mekkora lesz egy 1 000 bájtos fájl?
4 × ceil(1000 / 3). ceil(333.333…) = 334, és 4 × 334 = 1336. Tehát 1 000 bájtból 1 336 Base64 karakter lesz. UTF-8/ASCII-ként tárolva a karakter általában 1 bájt—ne kezelje az 1 336-ot pontos memóriabájtszámként.
Használhat a Base64 több memóriát, mint a fájlméret sejteti?
Egyes futtatókörnyezetek karakterenként 1 bájtnál többel tárolják a sztringeket, és a kódolás/dekódolás puffert és sztringet együtt tarthat. A memóriahasználat nem pontosan a karakterhossz.
Egyszerű méretdöntési útmutató
Ha a rendszer elfogad nyers binárist, méret miatt azt válassza. Ha csak szöveg engedélyezett, a Base64 illeszkedhet. Nagy terhelésnél keressen bináris feltöltési utat. URL-biztos szöveghez fontolja meg a Base64URL-t—a 3-ból-4 bővülés megmarad.
- Bináris adatot kell küldeni
- Nyers bináris engedélyezett? Méret miatt binárist válasszon
- Csak szövegmező? A Base64 megfelelő lehet
- Nagy terhelés? Keressen bináris feltöltést
- URL-biztos szöveg kell? Fontolja meg a Base64URL-t
- Nagy bemeneten számítson körülbelül 33% több szövegre
A Base64 nincs arra tervezve, hogy kisebbé tegye az adatot. A binárist könnyebben ábrázolja szöveges rendszerekben, és az ára a plusz méret.
Kódoljon vagy dekódoljon Base64-et a böngészőben
A NEXNARA Base64 kódolás szöveget kódol és dekódol, fájlt Base64-gyé vagy Data URL-lé alakíthat, és Base64-et vissza fájllá.
A szöveg UTF-8 bájtokat használ, majd Base64-et—nem csak ASCII-t. Válasszon Standardot vagy Base64URL-t. A fájlkimenet nyers Base64 vagy Data URL lehet (szabványos ábécé). Az érvénytelen bemenetet elutasítja. A nem UTF-8 bájtokhoz Fájl mód kell, nem szöveges dekódolás.
A 10 MB feletti fájlok lassíthatják a lapot (figyelmeztetés). A 32 MB feletti fájlok tiltva vannak.
A kódolás és dekódolás a böngészőjében történik. A fájlt ennél az eszköznél nem küldik NEXNARA-kiszolgálóra. A hirdetések és más oldalfunkciók továbbra is használják a hálózatot.
Illesszen be szöveget vagy fájlt a Base64 kódolás eszközbe, és hasonlítsa össze az eredeti bájtokat a kódolt hosszal.
FAQ
Miért növeli a Base64 a fájlméretet?
3 bájtot (24 bit) 4 karakterre (4 × 6 bit) képez. Szövegként tárolva nagy bemeneten ez körülbelül egyharmaddal több.
A Base64 mindig 33%-kal nagyobb?
Nem. A nagy bemenet körülbelül 33,3%-hoz közelít. Apró bemenet a kitöltés miatt többet nőhet. Használja a 4 × ceil(n / 3) képletet.
Mennyivel nagyobb a Base64 a binárisnál?
A szabványos kitöltött hossz 4 × ceil(n / 3) karakter. A Data URL előtag még hozzáad.
Csökkenti a Base64 tömörítés a fájlméretet?
A Base64 nem tömörít. gzip vagy Brotli a kódolt szövegen zsugoríthat belőle; nem törlik a többletet minden esetben.
Kevesebb helyet foglal a Base64URL?
Elhagyhatja a = kitöltést, így a sztring 0–2 karakterrel rövidebb lehet. A 3-ból-4 kódolási szerkezet ugyanaz.
Használjak Base64-et nagy fájlokhoz?
Csak ha szöveg kell. Nagy vagy gyakori átvitelnél a bináris út gyakran kisebb. A Base64 API-knál nem mindig rossz.