Tech Help
Miksi Base64 suurentaa tiedostoja?
Base64 suurentaa binaaridatan yleensä noin kolmanneksella. Katso 3 tavun ja 4 merkin rakenne, täyte, Data URL -lisä ja milloin ylimääräinen koko kannattaa.
Base64 suurentaa binaaridatan yleensä noin kolmanneksella, koska jokainen 3 binaaritavua esitetään 4 tulostettavalla Base64-merkillä.
Jos syötteen pituus ei ole tasan 3:n monikerta, vakio täytteellinen Base64 voi lisätä = -merkkejä. Koodattu pituus on 4 × ceil(n / 3), jossa n on alkuperäinen tavupituus.
”Noin 33 %” kuvaa suuria syötteitä. Pienissä syötteissä täyte voi näyttää paljon suuremmalta prosentilta. Base64 ei ole pakkaus. Koodauksen ja salauksen erosta katso [Base64 ei ole salaus: mitä se oikeasti tekee](/fi/story/base64-is-not-encryption).
Tämä artikkeli selittää, miksi Base64-tulos on suurempi kuin alkuperäiset tavut. Se ei ole turvaopas. Jos tarvitset koodauksen ja salauksen eroa, käytä Base64 ei ole salaus: mitä se oikeasti tekee.
Miksi Base64 tarvitsee enemmän tilaa?
3 tavua on 24 bittiä. Base64 jakaa nuo 24 bittiä 4 ryhmään, joissa kussakin on 6 bittiä. Jokainen ryhmä kuvautuu yhdeksi Base64-merkiksi, joten 3 syötetavua tulee 4 tulostemerkiksi. ASCII-merkkinä 1 tavu per merkki antaa 4 / 3 ≈ 1,333 — noin 33,3 % kasvun.
- 3 tavua (24 bittiä)
- Jaetaan 4 ryhmään à 6 bittiä
- Kukin ryhmä → yksi Base64-merkki
- 4 merkkiä (usein 4 tavua tekstiä)
Yksinkertainen, tarkistettava esimerkki
Nämä koodaukset vastaavat vakio täytteellistä Base64:ää.
Man
Man
Base64
TWFu
Man on 3 UTF-8/ASCII-tavua. TWFu on 4 merkkiä: 3 → 4.
Hello
Hello
Base64
SGVsbG8=
Hello on 5 tavua. SGVsbG8= on 8 merkkiä, mukana yksi =. Pienellä datalla täyte saa prosentin näyttämään suuremmalta kuin 33 %.
Miten Base64-koko lasketaan?
Vakio täytteelliselle Base64:lle encodedLength = 4 × ceil(originalBytes / 3).
| Alkuperäiset tavut | Base64-merkit |
|---|---|
| 1 | 4 |
| 2 | 4 |
| 3 | 4 |
| 4 | 8 |
| 5 | 8 |
| 6 | 8 |
1 tai 2 tavua tuottaa silti 4 merkkiä. Käytä kaavaa, ei kiinteää 33 %.
Mitä “=”-täyte tarkoittaa?
Merkki = osoittaa, että viimeinen 3 tavun lohko ei ollut täysi. 1 syötetavu käyttää kahta =; 2 tavua yhtä; 3 tavua ei yhtään. Täyte ei ole salausta eikä turvaominaisuus.
Käyttääkö Base64URL vähemmän tilaa?
Base64URL vaihtaa + merkin - merkiksi ja / merkin _ merkiksi, ja Koodaa Base64 jättää perään tulevat = pois koodattaessa. Se voi lyhentää merkkijonoa noilla = merkeillä. Rakenne 3 tavua → 4 merkkiä pysyy samana, joten Base64URL ei ole tilatehokkaampi binaarimuoto.
Miksi pienet syötteet voivat kasvaa yli 33 %?
1 tavu → 4 merkkiä on 300 % pituuden kasvu. 2 tavua → 4 on 100 %. 3 tavua → 4 on noin 33,3 %. Kun n kasvaa, täytteen vaikutus pienenee ja lisäkustannus lähestyy noin 33 %. Base64 ei ole aina tasan 33 % suurempi.
Miksi Base64 Data URL on vielä suurempi?
Data URL lisää etuliitteen kuten data:image/png;base64, ennen hyötykuormaa. Pienessä tiedostossa etuliite voi hallita prosenttia. Koodaa Base64 voi tuottaa raaka-Base64:n tai Data URL:n; Data URL -tulos käyttää vakioaakkostoa.
Base64 vai binaari: kumpi on pienempi?
Raaka binaari on tilatehokkaampi siirtoon ja tallennukseen. Base64 on suurempi, mutta tekstiturvallinen JSON:ssa, sähköpostissa ja muissa vain-teksti-poluissa. Se on binaarista tekstiksi -koodaus, ei pakkaus.
Pakkaako Base64 tiedostoja?
Ei. Base64 ei ole pakkausmuoto. Koodattu teksti on yleensä suurempi kuin alkuperäiset tavut. Jos siihen myöhemmin sovelletaan gzip tai Brotli, osa toistosta voi kutistua—tulos riippuu datasta ja pakkaajasta. gzip ei poista Base64-lisäkustannusta kokonaan.
Mitä tapahtuu, jos Base64 gzipataan?
HTTP-pakkaus voi vähentää joitain toistuvia kuvioita Base64-tekstissä. JPEG, PNG tai ZIP pakkautuvat usein huonosti jo raakatavuina, ja Base64-sitten-gzip on edelleen tapauskohtaista. gzipin jälkeen ei ole yleistä lisäprosenttia.
Pitäisikö tiedostot tallentaa Base64:nä?
Base64 voi sopia binaariin JSON-kentässä, pieneen upotettuun resurssiin, vain-teksti-API:in, kopioi/liitä-käyttöön tai Data URL:ään. Suurissa tiedostoissa tallennus, muisti ja hyötykuorma kasvavat. Se ei tarkoita ”älä koskaan käytä Base64:ää tiedostoille”.
Miksi Base64 on yleistä JSON-API:eissa?
JSON:lla ei ole natiivia raakabinaarityyppiä, joten API:t laittavat tavut usein Base64-merkkijonoon. Suurille tiedostoille multipart/form-data, objektitallennus tai suora binaarilähetys voi sopia paremmin. Kumpikaan valinta ei ole aina paras.
Miksi Base64:ää käytetään sähköpostissa?
MIME voi käyttää Base64:ää, jotta binaariliite kulkee tekstiturvallisina merkkeinä. Sama kokolisäkustannus pätee. Tämä on siirtomuoto, ei pienempi tiedosto.
Milloin ylimääräinen koko kannattaa?
Ylimääräinen koko voi kannattaa, kun binaarin on oltava tekstissä, hyötykuorma on pieni, API vaatii Base64:n tai tarvitset Data URL:n. Suurelle medialle suosi raakabinaaria, kun järjestelmä sen sallii.
Milloin Base64:ää kannattaa välttää?
Ohita se suurissa tiedostoissa, kapeassa kaistassa, toistuvissa siirroissa tai kun binaaripolku on jo olemassa—tilannekohtainen kysymys, ei ”Base64 on huono käytäntö”.
Täytteelliset Base64-pituudet, jotka voit tarkistaa
Alkuperäiset tavumäärät ja vakio täytteellisen Base64:n merkkimäärät:
| Alkuperäiset tavut | Base64-merkit |
|---|---|
| 1 | 4 |
| 2 | 4 |
| 3 | 4 |
| 10 | 16 |
| 100 | 136 |
| 1,000 | 1,336 |
Kaikki rivit noudattavat 4 × ceil(n / 3). Nämä ovat Base64-merkkien lukumääriä.
Esimerkki: Kuinka suureksi 1 000 tavun tiedosto kasvaa?
4 × ceil(1000 / 3). ceil(333.333…) = 334, ja 4 × 334 = 1336. Siis 1 000 tavua tulee 1 336 Base64-merkiksi. UTF-8/ASCII:na tallennettuna merkki on yleensä 1 tavu—älä pidä lukua 1 336 tarkan muistitavumääränä.
Voiko Base64 käyttää enemmän muistia kuin tiedostokoko antaa ymmärtää?
Jotkin ajonaikaiset ympäristöt tallentavat merkkijonot yli 1 tavu per merkki, ja koodaus/purku voi pitää puskurin ja merkkijonon yhtä aikaa. Muistinkäyttö ei ole tasan merkkipituus.
Yksinkertainen kokopäätöksen opas
Jos järjestelmä hyväksyy raakabinaarin, suosi sitä koon vuoksi. Jos vain teksti käy, Base64 voi sopia. Suurelle hyötykuormalle tarkista binaarilähetyspolku. URL-turvalliseen tekstiin harkitse Base64URL:ää—3:sta 4:ään laajennus jää.
- Binaaridata pitää lähettää
- Raakabinaari sallittu? Suosi binaaria koon vuoksi
- Vain tekstikenttä? Base64 voi sopia
- Suuri hyötykuorma? Tarkista binaarilähetys
- URL-turvallinen teksti? Harkitse Base64URL:ää
- Odota noin 33 % enemmän tekstiä suurilla syötteillä
Base64:ää ei ole suunniteltu tekemään datasta pienempää. Se tekee binaarin esittämisen tekstijärjestelmissä helpommaksi, ja hinta on ylimääräinen koko.
Koodaa tai pura Base64 selaimessa
NEXNARA Koodaa Base64 koodaa ja purkaa tekstiä, ja se voi muuttaa tiedoston Base64:ksi tai Data URL:ksi ja Base64:n takaisin tiedostoksi.
Teksti käyttää UTF-8-tavuja, sitten Base64:ää—ei pelkkää ASCII:ta. Valitse Standard tai Base64URL. Tiedostotulos voi olla raaka-Base64 tai Data URL (vakioaakkosto). Virheellinen syöte hylätään. Muut kuin UTF-8-tavut tarvitsevat tiedostotilan, ei tekstipurkua.
Yli 10 MB:n tiedostot voivat hidastaa välilehteä (varoitus). Yli 32 MB:n tiedostot estetään.
Koodaus ja purku tapahtuvat selaimessasi. Tiedostoa ei lähetetä NEXNARA-palvelimelle tässä työkalussa. Mainokset ja muut sivuston toiminnot käyttävät yhä verkkoa.
Liitä tekstiä tai tiedosto Koodaa Base64-työkaluun ja vertaa alkuperäisiä tavuja koodattuun pituuteen.
FAQ
Miksi Base64 kasvattaa tiedostokokoa?
Se kuvaa 3 tavua (24 bittiä) 4 merkiksi (4 × 6 bittiä). Tekstinä tallennettuna se on suurilla syötteillä noin kolmanneksen enemmän.
Onko Base64 aina 33 % suurempi?
Ei. Suuret syötteet lähestyvät noin 33,3 %. Pienet syötteet voivat kasvaa enemmän täytteen takia. Käytä 4 × ceil(n / 3).
Kuinka paljon suurempi Base64 on kuin binaari?
Vakio täytteellinen pituus on 4 × ceil(n / 3) merkkiä. Data URL -etuliite lisää lisää.
Pienentääkö Base64-pakkaus tiedostokokoa?
Base64 ei pakkaa. gzip tai Brotli koodatussa tekstissä voi kutistaa osan; ne eivät poista lisäkustannusta joka tapauksessa.
Käyttääkö Base64URL vähemmän tilaa?
Se voi jättää = -täytteen pois, joten merkkijono voi olla 0–2 merkkiä lyhyempi. 3:sta 4:ään koodausrakenne on sama.
Pitäisikö käyttää Base64:ää suurille tiedostoille?
Vain jos tarvitset tekstiä. Suurissa tai toistuvissa siirroissa binaaripolku on usein pienempi. Base64 ei ole aina väärin API:eissa.