Tech Help
Miks Base64 muudab failid suuremaks?
Base64 suurendab binaarandmeid tavaliselt umbes kolmandiku võrra. Vaadake 3 baidi 4 märgiks struktuuri, täidet, Data URL kulu ja millal lisasuurus tasub.
Base64 suurendab binaarandmeid tavaliselt umbes kolmandiku võrra, sest see esitab iga 3 baiti binaarandmeid 4 prinditava Base64 märgiga.
Kui sisendi pikkus ei ole täpne 3 kordne, võib standardne täidetud Base64 lisada = märke. Kodeeritud pikkus on 4 × ceil(n / 3), kus n on algne baidipikkus.
«Umbes 33%» kirjeldab suuri sisendeid. Tillukestel sisenditel võib täite tõttu protsent paista palju suurem. Base64 ei ole tihendus. Kodeerimise ja krüpteerimise kohta vt [Base64 ei ole krüpteerimine: mida see tegelikult teeb](/et/story/base64-is-not-encryption).
See artikkel selgitab, miks Base64 väljund on suurem kui algsed baidid. See ei ole turvajuhend. Kui vajate kodeerimist versus krüpteerimist, kasutage Base64 ei ole krüpteerimine: mida see tegelikult teeb.
Miks Base64 vajab rohkem ruumi?
3 baiti on 24 bitti. Base64 jagab need 24 bitti 4 rühma 6 bitiga. Iga rühm vastab ühele Base64 märgile, seega 3 sisendbaiti saavad 4 väljundmärki. Salvestatuna 1 bait ASCII märgi kohta on see 4 / 3 ≈ 1.333 — umbes 33.3% kasv.
- 3 baiti (24 bitti)
- Jagamine 4 rühmaks 6 bitiga
- Iga rühm → üks Base64 märk
- 4 märki (sageli 4 baiti teksti)
Lihtne, kontrollitav näide
Need kodeeringud vastavad standardsele täidetud Base64-le.
Man
Man
Base64
TWFu
Man on 3 UTF-8/ASCII baiti. TWFu on 4 märki: 3 → 4.
Hello
Hello
Base64
SGVsbG8=
Hello on 5 baiti. SGVsbG8= on 8 märki, sealhulgas üks =. Väikestel andmetel teeb täide protsendi suuremaks kui 33%.
Kuidas arvutada Base64 suurust?
Standardsel täidetud Base64-l, encodedLength = 4 × ceil(originalBytes / 3).
| Algsed baidid | Base64 märgid |
|---|---|
| 1 | 4 |
| 2 | 4 |
| 3 | 4 |
| 4 | 8 |
| 5 | 8 |
| 6 | 8 |
1 või 2 baiti annavad ikka 4 märki. Kasutage valemit, mitte kindlat 33%.
Mida tähendab «=» täide?
Märk = näitab, et viimane 3-baidine plokk ei olnud täis. 1 sisendbait kasutab kahte = märki; 2 baiti ühte; 3 baiti mitte ühtegi. Täide ei ole krüpteerimine ega turvafunktsioon.
Kas Base64URL kasutab vähem ruumi?
Base64URL muudab + märgiks - ja / märgiks _, ning Kodeeri Base64 jätab kodeerimisel lõpu = ära. See võib sõne lühendada nende = märkide võrra. 3 baiti → 4 märki struktuur jääb samaks, seega Base64URL ei ole ruumisäästlikum binaarvorming.
Miks tillukesed sisendid võivad kasvada üle 33%?
1 bait → 4 märki on 300% pikkuse kasv. 2 baiti → 4 on 100%. 3 baiti → 4 on umbes 33.3%. Kui n kasvab, täide loeb vähem ja kulu läheneb umbes 33%-le. Base64 ei ole alati täpselt 33% suurem.
Miks on Base64 Data URL veel suurem?
Data URL lisab koormuse ette eesliite, näiteks data:image/png;base64,. Tillukesel failil võib see eesliide protsenti valitseda. Kodeeri Base64 võib väljastada toore Base64 või Data URL; Data URL väljund kasutab standardset tähestikku.
Base64 vs binaar: kumb on väiksem?
Toores binaar on ruumi suhtes tõhusam transpordiks ja salvestuseks. Base64 on suurem, kuid tekstiohutu JSON-is, e-kirjas ja teistes ainult-teksti teedes. See on binaari tekstiks kodeerimine, mitte tihendus.
Kas Base64 tihendab faile?
Ei. Base64 ei ole tihendusvorming. Kodeeritud tekst on tavaliselt suurem kui algsed baidid. Kui hiljem rakendate sellele tekstile gzip või Brotli, võib osa liiasusest kahaneda — tulemus sõltub andmetest ja tihendajast. gzip ei eemalda Base64 kulu täielikult.
Mis juhtub, kui Base64 gzipitakse?
HTTP tihendus võib vähendada mõningaid korduvaid mustreid Base64 tekstis. JPEG, PNG või ZIP tihenevad sageli halvasti isegi toorete baitidena ning Base64-siis-gzip sõltub endiselt juhust. Pärast gzip ei ole universaalset lisaprotsenti.
Kas faile tuleks hoida Base64-na?
Base64 mahutab binaari JSON-välja, väikese sisseehitatud ressursi, ainult-teksti API, kopeeri/kleebi või Data URL-i. Suurte failide puhul kasvavad salvestus, mälu ja koormuse suurus. See ei ole «ärge kunagi kasutage Base64 failide jaoks».
Miks on Base64 JSON API-des tavaline?
JSON-il pole omast toore binaari tüüpi, seega panevad API-d baidid sageli Base64 sõnesse. Suurte failide jaoks võivad paremini sobida multipart/form-data, objektisalvestus või otsene binaarne üleslaadimine. Ükski valik pole alati parim.
Miks kasutatakse Base64 e-kirjas?
MIME võib kasutada Base64, et binaarne manus liiguks tekstiohutute märkidena. Sama suuruse kulu kehtib endiselt. See on transpordiesitus, mitte väiksem fail.
Millal lisasuurus tasub?
Lisasuurus võib tasuda, kui binaar peab istuma teksti sees, koormus on väike, API nõuab Base64 või vajate Data URL-i. Suure meedia puhul eelistage toorest binaari, kui süsteem seda lubab.
Millal Base64-st hoiduda?
Jätke see vahele suurte failide, kitsa riba, sagedaste ülekannete või juba olemasoleva binaartee puhul — olukorrast lähtuvalt, mitte «Base64 on halb tava».
Täidetud Base64 pikkused, mida saate kontrollida
Algsete baitide arvud ja standardse täidetud Base64 märkide arvud:
| Algsed baidid | Base64 märgid |
|---|---|
| 1 | 4 |
| 2 | 4 |
| 3 | 4 |
| 10 | 16 |
| 100 | 136 |
| 1,000 | 1,336 |
Kõik read järgivad 4 × ceil(n / 3). Need on Base64 märkide arvud.
Näide: kui suureks muutub 1,000-baidine fail?
4 × ceil(1000 / 3). ceil(333.333…) = 334 ja 4 × 334 = 1336. Seega 1,000 baiti saavad 1,336 Base64 märki. UTF-8/ASCII-na salvestatuna on iga märk tavaliselt 1 bait — ärge võtke 1,336 täpseks mälubaidiarvuks.
Kas Base64 võib kasutada rohkem mälu, kui faili suurus vihjab?
Mõned käituskeskkonnad hoiavad sõnesid rohkem kui 1 baidiga märgi kohta ning kodeerimine/dekodeerimine võib hoida puhvrit ja sõne koos. Mälukasutus ei ole täpselt pikkus märkides.
Lihtne suuruse otsustusjuhend
Kui süsteem võtab toorest binaari, eelistage seda suuruse pärast. Kui lubatud on ainult tekst, võib Base64 sobida. Suure koormuse korral otsige binaarset üleslaadimisteed. URL-ohutu teksti jaoks kaaluge Base64URL — 3-st-4-ks laienemine jääb.
- Tuleb saata binaarandmeid
- Toores binaar lubatud? Eelista binaari suuruse pärast
- Ainult-teksti väli? Base64 võib sobida
- Suur koormus? Otsi binaarset üleslaadimisteed
- Vajad URL-ohutut teksti? Kaalu Base64URL
- Suurtel sisenditel oota umbes 33% rohkem teksti
Base64 ei ole mõeldud andmeid väiksemaks tegema. See teeb binaari esitamise tekstisüsteemides lihtsamaks ja hind on lisasuurus.
Kodeerige või dekodeerige Base64 brauseris
NEXNARA Kodeeri Base64 kodeerib ja dekodeerib teksti ning võib muuta faili Base64-ks või Data URL-iks ja Base64 tagasi failiks.
Tekst läheb UTF-8 baitidena, seejärel Base64 — mitte ainult ASCII. Valige Standard või Base64URL. Faili väljund võib olla toores Base64 või Data URL (standardtähestik). Vigane sisend lükatakse tagasi. Mitte-UTF-8 baidid vajavad faili, mitte tekstidekodeerimist.
Failid üle 10 MB võivad kaarti aeglustada (hoiatus). Failid üle 32 MB blokeeritakse.
Kodeerimine ja dekodeerimine toimuvad teie brauseris. Faili ei saadeta selle tööriista jaoks NEXNARA serverisse. Reklaamid ja muud saidi funktsioonid kasutavad endiselt võrku.
Kleepige tekst või fail Kodeeri Base64 ja võrrelge algseid baite kodeeritud pikkusega.
FAQ
Miks Base64 suurendab faili suurust?
See kaardistab 3 baiti (24 bitti) 4 märgiks (4 × 6 bitti). Tekstina salvestatuna on see suurtel sisenditel umbes kolmandiku võrra rohkem.
Kas Base64 on alati 33% suurem?
Ei. Suured sisendid lähenevad umbes 33.3%-le. Tillukesed sisendid võivad täite tõttu kasvada rohkem. Kasutage 4 × ceil(n / 3).
Kui palju on Base64 suurem kui binaar?
Standardne täidetud pikkus on 4 × ceil(n / 3) märki. Data URL eesliide lisab veel.
Kas Base64 tihendus vähendab faili suurust?
Base64 ei tihenda. gzip või Brotli kodeeritud tekstil võivad osa kahandada; need ei kustuta kulu igal juhul.
Kas Base64URL kasutab vähem ruumi?
See võib jätta = täite ära, seega võib sõne olla 0–2 märki lühem. 3-st-4-ks kodeerimisstruktuur on sama.
Kas kasutada Base64 suurte failide jaoks?
Ainult kui vajate teksti. Suurte või sagedaste ülekannete jaoks on binaartee sageli väiksem. Base64 ei ole API-de jaoks alati vale.