Tech Help

Af hverju gerir Base64 skrár stærri?

Base64 stækkar tvíundargögn venjulega um u.þ.b. þriðjung. Sjáðu 3 bæti í 4 stafi, fyllingu, Data URL kostnað og hvenær aukastærðin er þess virði.

Stutt svar

Base64 stækkar tvíundargögn venjulega um u.þ.b. þriðjung vegna þess að það táknar hver 3 bæti tvíundargagna með 4 prentanlegum Base64 stöfum.

Ef inntakslengd er ekki nákvæm margfeldi af 3 getur staðlað Base64 með fyllingu bætt við = stöfum. Kóðuð lengd er 4 × ceil(n / 3), þar sem n er upprunaleg bætalengd.

«Um 33%» lýsir stóru inntaki. Á smáu inntaki getur hlutfallið litið miklu stærra út vegna fyllingar. Base64 er ekki þjöppun. Fyrir kóðun á móti dulkóðun, sjá [Base64 er ekki dulkóðun: hvað það gerir í raun](/is/story/base64-is-not-encryption).

Þessi grein útskýrir hvers vegna Base64-úttak er stærra en upprunalegu bætin. Þetta er ekki öryggisleiðbeining. Ef þú þarft kóðun á móti dulkóðun, notaðu Base64 er ekki dulkóðun: hvað það gerir í raun.

Af hverju þarf Base64 meira pláss?

3 bæti eru 24 bitar. Base64 skiptir þessum 24 bitum í 4 hópa af 6 bitum. Hver hópur varpast á einn Base64 staf, svo 3 inntaksbæti verða 4 úttaksstafir. Vistað sem 1 bæti á ASCII staf er það 4 / 3 ≈ 1.333 — um 33.3% aukning.

  • 3 bæti (24 bitar)
  • Skipting í 4 hópa af 6 bitum
  • Hver hópur → einn Base64 stafur
  • 4 stafir (oft 4 bæti af texta)
Skrefið 3 bæti → 4 stafir er stærðarkostnaðurinn. Fylling getur bætt við smá á stuttu inntaki.

Einfalt, athuganlegt dæmi

Þessar kóðanir passa við staðlað Base64 með fyllingu.

Man

Man

Base64

TWFu

Man eru 3 UTF-8/ASCII bæti. TWFu eru 4 stafir: 3 → 4.

Hello

Hello

Base64

SGVsbG8=

Hello eru 5 bæti. SGVsbG8= eru 8 stafir, þar á meðal eitt =. Á litlum gögnum gerir fylling hlutfallið stærra en 33%.

Hvernig reiknarðu Base64 stærð?

Fyrir staðlað Base64 með fyllingu, encodedLength = 4 × ceil(originalBytes / 3).

Upprunaleg bæti Base64 stafir
14
24
34
48
58
68

1 eða 2 bæti gefa samt 4 stafi. Notaðu formúluna, ekki fast 33%.

Hvað merkir «=» fyllingin?

Merkið = sýnir að síðasti 3 bæta blokkin var ekki full. 1 inntaksbæti notar tvo = stafi; 2 bæti nota einn; 3 bæti nota engan. Fylling er ekki dulkóðun né öryggiseiginleiki.

Notar Base64URL minna pláss?

Base64URL breytir + í - og / í _, og Kóða Base64 sleppir = í enda við kóðun. Það getur stytt strenginn um þá = stafi. 3 bæti → 4 stafa byggingin helst, svo Base64URL er ekki plásssparnari tvíundarform.

Af hverju getur smátt inntak vaxið meira en 33%?

1 bæti → 4 stafir er 300% lengdaraukning. 2 bæti → 4 er 100%. 3 bæti → 4 er um 33.3%. Þegar n vex skiptir fylling minna máli og kostnaðurinn nálgast um 33%. Base64 er ekki alltaf nákvæmlega 33% stærra.

Af hverju er Base64 Data URL enn stærra?

Data URL bætir við forskeyti eins og data:image/png;base64, fyrir framan farm. Á smárri skrá getur það forskeyti ráðið hlutfallinu. Kóða Base64 getur gefið út hrátt Base64 eða Data URL; Data URL úttak notar staðlaða stafrófið.

Base64 á móti tvíund: hvort er minna?

Hrát tvíund er plásshagkvæmara fyrir flutning og geymslu. Base64 er stærra, en textaöruggt í JSON, tölvupósti og öðrum texta-eingöngu leiðum. Það er tvíund-í-texta kóðun, ekki þjöppun.

Þjappar Base64 skrám?

Nei. Base64 er ekki þjöppunarsnið. Kóðaði textinn er venjulega stærri en upprunalegu bætin. Ef þú beitir síðan gzip eða Brotli á þann texta getur hluti umframins minnkað — niðurstaðan fer eftir gögnum og þjöppun. gzip fjarlægir ekki Base64 kostnaðinn alveg.

Hvað gerist ef Base64 er gzippað?

HTTP þjöppun getur minnkað sum endurtekin mynstur í Base64 texta. JPEG, PNG eða ZIP þjappast oft illa jafnvel sem hrát bæti, og Base64-síðan-gzip fer enn eftir tilviki. Ekkert algilt aukaprósent er eftir gzip.

Ættirðu að geyma skrár sem Base64?

Base64 getur sett tvíund í JSON reit, litla innfellda eign, texta-eingöngu API, afritun/límingu eða Data URL. Fyrir stórar skrár vaxa geymsla, minni og farmstærð. Þetta er ekki «aldrei nota Base64 fyrir skrár».

Af hverju er Base64 algengt í JSON API?

JSON hefur enga innbyggða hráa tvíundargerð, svo API setja bæti oft í Base64 streng. Fyrir stórar skrár geta multipart/form-data, hlutageymsla eða bein tvíundarupphleðsla hentað betur. Hvorugt val er alltaf best.

Af hverju er Base64 notað í tölvupósti?

MIME getur notað Base64 svo tvíundarviðhengi ferðist sem textaöruggir stafir. Sami stærðarkostnaður gildir enn. Þetta er flutningsframsetning, ekki minni skrá.

Hvenær er aukastærðin þess virði?

Aukastærðin getur verið þess virði þegar tvíund verður að sitja inni í texta, farmurinn er lítill, API krefst Base64 eða þú þarft Data URL. Fyrir stóra miðla skaltu kjósa hrátt tvíund þegar kerfið leyfir.

Hvenær ættirðu að forðast Base64?

Slepptu því fyrir stórar skrár, þrönga bandbreidd, tíðar sendingar eða þegar tvíundarleið er þegar til — eftir aðstæðum, ekki «Base64 er slæm venja».

Base64 lengdir með fyllingu sem þú getur athugað

Upprunalegir bætafjöldar og staðlaðir Base64 stafafjöldar með fyllingu:

Upprunaleg bæti Base64 stafir
14
24
34
1016
100136
1,0001,336

Allar línur fylgja 4 × ceil(n / 3). Þetta eru Base64 stafafjöldar.

Dæmi: hversu stór verður 1,000 bæta skrá?

4 × ceil(1000 / 3). ceil(333.333…) = 334, og 4 × 334 = 1336. Svo 1,000 bæti verða 1,336 Base64 stafir. Vistað sem UTF-8/ASCII er hver stafur venjulega 1 bæti — ekki taka 1,336 sem nákvæman bætafjölda í minni.

Getur Base64 notað meira minni en skráarstærðin gefur til kynna?

Sum keyrsluumhverfi geyma strengi með meira en 1 bæti á staf, og kóðun/afkóðun getur haldið biðminni og streng saman. Minnisnotkun er ekki nákvæmlega stafalengdin.

Einföld stærðarákvarðunarleiðbeining

Ef kerfið tekur við hráu tvíundi, kjósið það vegna stærðar. Ef aðeins texti er leyfður getur Base64 hentað. Fyrir stóran farm, leitaðu tvíundarupphleðsluleiðar. Fyrir URL-öruggan texta, íhugaðu Base64URL — 3-í-4 stækkunin helst.

  • Þarf að senda tvíundargögn
  • Hrát tvíund leyft? Kjósa tvíund vegna stærðar
  • Aðeins textareitur? Base64 getur hentað
  • Stór farmur? Leita tvíundarupphleðsluleiðar
  • Þarft URL-öruggan texta? Íhuga Base64URL
  • Á stóru inntaki búast við um 33% meiri texta
Base64 kaupir textasamhæfi. Það kaupir ekki minni skrá.
Base64 skiptir plássi fyrir textasamhæfi

Base64 er ekki hannað til að gera gögn minni. Það auðveldar að tákna tvíund inni í textakerfum, og kostnaðurinn er aukastærð.

Kóðaðu eða afkóðaðu Base64 í vafranum

NEXNARA Kóða Base64 kóðar og afkóðar texta og getur snúið skrá í Base64 eða Data URL og snúið Base64 aftur í skrá.

Texti fer UTF-8 bætum, síðan Base64 — ekki aðeins ASCII. Veldu Standard eða Base64URL. Skráarúttak getur verið hrátt Base64 eða Data URL (staðlað stafróf). Ógilt inntak er hafnað. Bæti sem eru ekki UTF-8 þurfa skrá, ekki textaafkóðun.

Skrár yfir 10 MB geta hægt flipann (viðvörun). Skrár yfir 32 MB eru lokaðar.

Kóðun og afkóðun gerast í vafranum þínum. Skráin er ekki send á NEXNARA miðlara fyrir þetta tól. Auglýsingar og aðrir vefeiginleikar nota enn netið.

Límdu texta eða skrá í Kóða Base64 og berðu upprunalegu bætin saman við kóðuðu lengdina.

FAQ

Af hverju eykur Base64 skráarstærð?

Það varpar 3 bætum (24 bitum) á 4 stafi (4 × 6 bitar). Vistað sem texti er það um þriðjungi meira á stóru inntaki.

Er Base64 alltaf 33% stærra?

Nei. Stórt inntak nálgast um 33.3%. Smátt inntak getur vaxið meira vegna fyllingar. Notaðu 4 × ceil(n / 3).

Hversu mikið stærra er Base64 en tvíund?

Stöðluð lengd með fyllingu er 4 × ceil(n / 3) stafir. Data URL forskeyti bætir við meira.

Minnkar Base64 þjöppun skráarstærð?

Base64 þjappar ekki. gzip eða Brotli á kóðaða textanum geta minnkað hluta; þau eyða ekki kostnaðinum í hverju tilviki.

Notar Base64URL minna pláss?

Það getur sleppt = fyllingu, svo strengurinn getur verið 0–2 stöfum styttri. 3-í-4 kóðunarbyggingin er sú sama.

Á ég að nota Base64 fyrir stórar skrár?

Aðeins ef þú þarft texta. Fyrir stórar eða tíðar sendingar er tvíundarleið oft minni. Base64 er ekki alltaf rangt fyrir API.