Tech Help
Bakit pinapalaki ng Base64 ang file?
Karaniwang pinapalaki ng Base64 ang binary nang humigit-kumulang isang-katlo. Tingnan ang istruktura ng 3 byte tungo sa 4 na character, padding, Data URL overhead, at kailan sulit ang dagdag na laki.
Karaniwang pinapalaki ng Base64 ang binary nang humigit-kumulang isang-katlo dahil bawat 3 byte ng binary ay inihahayag gamit ang 4 na nai-print na character ng Base64.
Kung hindi eksaktong multiple of 3 ang haba ng input, maaaring magdagdag ng = characters ang standard padded Base64. Ang encoded length ay 4 × ceil(n / 3), kung saan n ang orihinal na bilang ng byte.
Ang “mga 33%” ay tumutukoy sa malalaking input. Ang napakaliit na input ay maaaring magmukhang mas malaking porsyento dahil sa padding. Hindi compression ang Base64. Para sa encoding kumpara sa encryption, tingnan ang [Hindi encryption ang Base64: ano talaga ang ginagawa nito](/fil/story/base64-is-not-encryption).
Ipinaliliwanag ng artikulong ito kung bakit mas malaki ang output ng Base64 kaysa sa orihinal na byte. Hindi ito gabay sa seguridad. Kung kailangan mong ihiwalay ang encoding sa encryption, gamitin ang Hindi encryption ang Base64: ano talaga ang ginagawa nito.
Bakit kailangan ng Base64 ng mas malaking espasyo?
Ang 3 byte ay 24 bits. Hinahati ng Base64 ang 24 bits na iyon sa 4 na grupo ng 6 bits. Bawat grupo ay nagiging isang Base64 character, kaya 3 input byte ay nagiging 4 na output character. Kung itatabi bilang 1 byte bawat ASCII character, iyon ay 4 / 3 ≈ 1.333 — mga 33.3% na dagdag.
- 3 byte (24 bits)
- Hatiin sa 4 na grupo ng 6 bits
- Bawat grupo → isang Base64 character
- 4 na character (madalas 4 na byte ng teksto)
Simpleng halimbawang masusuri
Tugma ang mga encoding na ito sa standard padded Base64.
Man
Man
Base64
TWFu
Ang Man ay 3 UTF-8/ASCII bytes. Ang TWFu ay 4 na character: 3 → 4.
Hello
Hello
Base64
SGVsbG8=
Ang Hello ay 5 bytes. Ang SGVsbG8= ay 8 characters, kasama ang isang =. Sa maliit na data, pinapalaki ng padding ang itsura ng porsyento kaysa 33%.
Paano kalkulahin ang laki ng Base64?
Para sa standard padded Base64, encodedLength = 4 × ceil(originalBytes / 3).
| Orihinal na byte | Mga Base64 character |
|---|---|
| 1 | 4 |
| 2 | 4 |
| 3 | 4 |
| 4 | 8 |
| 5 | 8 |
| 6 | 8 |
Ang 1 o 2 bytes ay nagiging 4 na character pa rin. Gamitin ang formula, hindi ang nakapirming 33%.
Ano ang ibig sabihin ng padding na “=”?
Ipinapakita ng = na hindi puno ang huling 3-byte block. Gumagamit ng dalawang = ang 1 input byte; isa para sa 2 bytes; wala para sa 3 bytes. Hindi encryption o feature ng seguridad ang padding.
Gumagamit ba ng mas kaunting espasyo ang Base64URL?
Binabago ng Base64URL ang + papuntang - at / papuntang _, at inaalis ng I-encode ang Base64 ang trailing = sa encode. Maaaring umikli ang string ayon sa mga = na iyon. Pareho pa rin ang istruktura ng 3 byte → 4 na character, kaya hindi mas matipid sa espasyo na binary format ang Base64URL.
Bakit puwedeng lumaki nang higit sa 33% ang napakaliit na input?
Ang 1 byte → 4 na character ay 300% na dagdag sa haba. Ang 2 bytes → 4 ay 100%. Ang 3 bytes → 4 ay mga 33.3%. Habang lumalaki ang n, bumababa ang epekto ng padding at lumalapit ang overhead sa mga 33%. Hindi palaging eksaktong 33% na mas malaki ang Base64.
Bakit mas malaki pa ang Base64 Data URL?
Nagdadagdag ang Data URL ng prefix gaya ng data:image/png;base64, bago ang payload. Sa napakaliit na file, puwedeng dominahin ng prefix ang porsyento. Makakagawa ang I-encode ang Base64 ng raw Base64 o Data URL; gumagamit ang Data URL output ng standard alphabet.
Base64 vs binary: alin ang mas maliit?
Mas matipid sa espasyo ang raw binary para sa transfer at storage. Mas malaki ang Base64, pero ligtas bilang teksto sa JSON, email, at iba pang landas na teksto lamang. Encoding ito mula binary tungo sa teksto, hindi compression.
Nagsu-compress ba ng file ang Base64?
Hindi. Hindi compression format ang Base64. Karaniwang mas malaki ang naka-encode na teksto kaysa sa orihinal na byte. Kung maglalagay ka pagkatapos ng gzip o Brotli sa text na iyon, puwedeng umikli ang ilang redundancy—depende sa data at compressor. Hindi ganap na inaalis ng gzip ang Base64 overhead.
Ano ang nangyayari kung i-gzip ang Base64?
Puwedeng bawasan ng HTTP compression ang ilang umuulit na pattern sa Base64 text. Madalas mahirap i-compress ang JPEG, PNG, o ZIP kahit bilang raw bytes, at nakadepende pa rin sa kaso ang Base64 tapos gzip. Walang pangkalahatang dagdag-porsyento pagkatapos ng gzip.
Dapat bang i-store ang file bilang Base64?
Puwedeng ilagay ng Base64 ang binary sa JSON field, maliit na inline asset, text-only API, copy/paste, o Data URL. Para sa malalaking file, lumalaki ang storage, memory, at payload. Hindi ibig sabihin iyon na “huwag kailanman gumamit ng Base64 para sa file.”
Bakit karaniwan ang Base64 sa JSON API?
Walang native na uri ng raw binary ang JSON, kaya madalas ilagay ng API ang bytes sa Base64 string. Para sa malalaking file, mas maaaring umangkop ang multipart/form-data, object storage, o tuwirang binary upload. Walang palaging pinakamahusay sa dalawa.
Bakit ginagamit ang Base64 sa email?
Puwedeng gamitin ng MIME ang Base64 para maglakbay ang binary attachment bilang mga character na ligtas sa teksto. Nananatili ang parehong overhead sa laki. Representasyon sa transport ito, hindi mas maliit na file.
Kailan sulit ang dagdag na laki?
Puwedeng sulit ang dagdag na laki kapag kailangang nasa loob ng teksto ang binary, maliit ang payload, kailangan ng API ang Base64, o kailangan mo ng Data URL. Para sa malaking media, mas mainam ang raw binary kapag pinapayagan ng sistema.
Kailan dapat iwasan ang Base64?
Laktawan para sa malalaking file, masikip na bandwidth, madalas na transfer, o kapag may binary path na—pang-sitwasyon ito, hindi “masamang gawain ang Base64.”
Mga padded Base64 length na masusuri
Bilang ng orihinal na byte at bilang ng standard padded Base64 character:
| Orihinal na byte | Mga Base64 character |
|---|---|
| 1 | 4 |
| 2 | 4 |
| 3 | 4 |
| 10 | 16 |
| 100 | 136 |
| 1,000 | 1,336 |
Sumusunod ang lahat ng row sa 4 × ceil(n / 3). Bilang ito ng Base64 character.
Halimbawa: gaano kalaki ang magiging 1,000-byte na file?
4 × ceil(1000 / 3). ceil(333.333…) = 334, at 4 × 334 = 1336. Kaya ang 1,000 bytes ay nagiging 1,336 Base64 characters. Kung naka-store bilang UTF-8/ASCII, karaniwang 1 byte ang bawat character—huwag ituring na eksaktong bilang ng byte sa memory ang 1,336.
Puwede bang gumamit ng mas maraming memory ang Base64 kaysa sa ipinahihiwatig ng file size?
May mga runtime na nag-iimbak ng string nang higit sa 1 byte bawat character, at puwedeng magkasabay ang buffer at string sa encode/decode. Hindi eksaktong katumbas ng character length ang paggamit ng memory.
Simpleng gabay sa desisyon sa laki
Kung tumatanggap ang sistema ng raw binary, unahin iyon para sa laki. Kung teksto lang ang puwede, maaaring umangkop ang Base64. Para sa malaking payload, tingnan kung may binary upload path. Para sa URL-safe na teksto, isaalang-alang ang Base64URL—nananatili ang paglaki mula 3 tungo sa 4.
- Kailangang magpadala ng binary data
- Pinapayagan ang raw binary? Unahin ang binary para sa laki
- Field na teksto lamang? Maaaring angkop ang Base64
- Malaking payload? Tingnan kung may binary upload path
- Kailangan ng URL-safe na teksto? Isaalang-alang ang Base64URL
- Asahan ang mga 33% na mas maraming teksto sa malalaking input
Hindi idinisenyo ang Base64 para paliitin ang data. Pinapadali nitong ilagay ang binary sa loob ng sistemang nakabase sa teksto, at ang kapalit ay dagdag na laki.
I-encode o i-decode ang Base64 sa iyong browser
Nag-e-encode at nagde-decode ng teksto ang NEXNARA I-encode ang Base64, at puwede nitong gawing Base64 o Data URL ang file at ibalik ang Base64 bilang file.
Gumagamit ang teksto ng UTF-8 bytes, pagkatapos Base64—hindi ASCII lamang. Pumili ng Standard o Base64URL. Puwedeng raw Base64 o Data URL (standard alphabet) ang file output. Tinatanggihan ang hindi wastong input. Ang hindi UTF-8 na bytes ay kailangang gawing file, huwag i-decode bilang teksto.
Ang file na lampas sa 10 MB ay maaaring pabagalin ang tab (babala). Hinarang ang file na lampas sa 32 MB.
Sa iyong browser nangyayari ang encoding at decoding. Hindi ipinapadala ang file sa NEXNARA server para sa tool na ito. Gumagamit pa rin ng network ang ads at iba pang feature ng site.
Mag-paste ng teksto o file sa I-encode ang Base64 at ihambing ang orihinal na byte sa encoded length.
FAQ
Bakit pinapalaki ng Base64 ang file size?
Itinatambalan nito ang 3 bytes (24 bits) sa 4 na character (4 × 6 bits). Kapag naka-store bilang teksto, mga isang-katlo ang dagdag sa malalaking input.
Palagi bang 33% na mas malaki ang Base64?
Hindi. Lumalapit ang malalaking input sa mga 33.3%. Puwedeng mas lumaki ang napakaliit na input dahil sa padding. Gamitin ang 4 × ceil(n / 3).
Gaano kalaki ang Base64 kaysa sa binary?
Ang standard padded length ay 4 × ceil(n / 3) characters. Nagdadagdag pa ang Data URL prefix.
Binabawasan ba ng Base64 compression ang file size?
Hindi nagsu-compress ang Base64. Puwedeng magpaikli ang Gzip o Brotli sa naka-encode na teksto; hindi nila nabubura ang overhead sa bawat kaso.
Gumagamit ba ng mas kaunting espasyo ang Base64URL?
Puwede nitong tanggalin ang = padding, kaya maaaring 0–2 characters na mas maikli ang string. Pareho ang istruktura ng encoding mula 3 tungo sa 4.
Dapat ko bang gamitin ang Base64 para sa malalaking file?
Kung kailangan mo ng teksto lang. Para sa malaki o madalas na transfer, madalas mas maliit ang binary path. Hindi palaging mali ang Base64 para sa API.