Tech Help
Zergatik handitzen ditu Base64k fitxategiak?
Base64k datu binarioak hiru heren inguru handiago bihurtzen ditu normalean. Ikusi 3 bytetik 4 karakterera doan egitura, betegarria, Data URL kostu gehigarria eta noiz merezi duen tamaina extra hori.
Base64k datu binarioak hiru heren inguru handiago bihurtzen ditu normalean, datu binarioen 3 byte bakoitza 4 Base64 karaktere inprimagarriz adierazten dituelako.
Sarreraren luzera ez bada 3ren multiplo zehatza, betegarria duen Base64 estandarrak = karaktereak gehi ditzake. Kodettutako luzera 4 × ceil(n / 3) da, n jatorrizko byte-luzera izanik.
«%33 inguru» sarrera handiak deskribatzen ditu. Sarrera txiki-txikietan ehunekoa askoz handiagoa dirudi betegarriagatik. Base64 ez da konpresioa. Kodeketa eta zifratzearen artean, ikusi [Base64 ez da zifratzea: benetan zer egiten duen](/eu/story/base64-is-not-encryption).
Artikulu honek azaltzen du zergatik den Base64 irteera jatorrizko byteak baino handiagoa. Ez da segurtasun-gida. Kodeketa eta zifratzea bereizi behar badituzu, erabili Base64 ez da zifratzea: benetan zer egiten duen.
Zergatik behar du Base64k toki gehiago?
3 byte 24 bit dira. Base64k 24 bit horiek 6 biteko 4 taldetan zatitzen ditu. Talde bakoitza Base64 karaktere batera mapatzen da, beraz 3 sarrera-byte 4 irteera-karaktere bihurtzen dira. ASCII karaktere bakoitzeko 1 byte gisa gordeta, hori 4 / 3 ≈ 1.333 da — %33.3 inguruko igoera.
- 3 byte (24 bit)
- Zatitu 6 biteko 4 taldetan
- Talde bakoitza → Base64 karaktere bat
- 4 karaktere (askotan 4 byte testu)
Adibide sinple eta egiazta daitekeena
Kodeketa hauek betegarria duen Base64 estandarrarekin bat datoz.
Man
Man
Base64
TWFu
Man 3 UTF-8/ASCII byte dira. TWFu 4 karaktere dira: 3 → 4.
Hello
Hello
Base64
SGVsbG8=
Hello 5 byte dira. SGVsbG8= 8 karaktere dira, = bat barne. Datu txikietan, betegarriak ehunekoa %33 baino handiagoa agerrarazten du.
Nola kalkulatzen da Base64 tamaina?
Betegarria duen Base64 estandarrerako, encodedLength = 4 × ceil(originalBytes / 3).
| Jatorrizko byteak | Base64 karaktereak |
|---|---|
| 1 | 4 |
| 2 | 4 |
| 3 | 4 |
| 4 | 8 |
| 5 | 8 |
| 6 | 8 |
1 edo 2 bytek 4 karaktere ematen dituzte oraindik. Erabili formula, ez %33 finkoa.
Zer esan nahi du «=» betegarriak?
= markak erakusten du azken 3 byteko blokea ez zela bete. 1 sarrera-bytek bi = karaktere erabiltzen ditu; 2 bytek bat; 3 bytek bat ere ez. Betegarria ez da zifratzea ez segurtasun-ezaugarria.
Base64URLk toki gutxiago erabiltzen al du?
Base64URLk + - bihurtzen du eta / _ bihurtzen du, eta Kodeatu Base64 kodetzean atzeko = uzten ditu. Horrek kate hori = karaktere horiek laburtu dezake. 3 byte → 4 karaktere egitura berean geratzen da, beraz Base64URL ez da tokiari dagokionez eraginkorragoa den formatu binarioa.
Zergatik hazi daitezke sarrera txiki-txikiak %33 baino gehiago?
1 byte → 4 karaktere luzeran %300eko igoera da. 2 byte → 4 %100 da. 3 byte → 4 %33.3 inguru da. n handitzen den heinean, betegarriak garrantzi gutxiago du eta gainkostua %33 ingurura hurbiltzen da. Base64 ez da beti zehazki %33 handiagoa.
Zergatik da Base64 Data URL are handiagoa?
Data URL batek data:image/png;base64, bezalako aurrizkia gehitzen du kargaren aurretik. Fitxategi txiki-txiki batean aurrizki horrek ehunekoa menderatu dezake. Kodeatu Base64 Base64 gordin edo Data URL eman dezake; Data URL irteerak alfabeto estandarra erabiltzen du.
Base64 eta binarioa: zein da txikiagoa?
Binario gordina tokiari dagokionez eraginkorragoa da garraioan eta biltegiratzean. Base64 handiagoa da, baina testu-segurua JSON, e-posta eta beste testu-bakar bideetan. Binariotik testura kodeketa da, ez konpresioa.
Base64k fitxategiak konprimitzen al ditu?
Ez. Base64 ez da konpresio-formatua. Kodettutako testua jatorrizko byteak baino handiagoa izaten da. Gero gzip edo Brotli aplikatzen badiozu testu horri, erredundantzia batzuk txikitu daitezke — emaitza datuen eta konpresorearen araberakoa da. gzip-ek ez du Base64 gainkostua erabat kentzen.
Zer gertatzen da Base64 gzip-ekin konprimitzen bada?
HTTP konpresioak Base64 testuko eredu errepikatu batzuk murriztu ditzake. JPEG, PNG edo ZIP maiz gaizki konprimitzen dira byte gordin gisa ere, eta Base64-ondoren-gzip kasuaren araberakoa da oraindik. Ez dago gzip ondoren ehuneko extra unibertsala.
Fitxategiak Base64 gisa gorde behar al dituzu?
Base64k binarioa JSON eremu batean, lineako baliabide txiki batean, testu-bakar API batean, kopiatu/itsatsi edo Data URL batean sar dezake. Fitxategi handietan, biltegiratzea, memoria eta karga-tamaina hazi egiten dira. Hori ez da «ez erabili inoiz Base64 fitxategietarako».
Zergatik da ohikoa Base64 JSON APIetan?
JSONek ez du jatorrizko binario gordin motarik, beraz APIek maiz jartzen dituzte byteak Base64 kate batean. Fitxategi handietarako, multipart/form-data, objektu-biltegiratzea edo igoera binario zuzena hobeto egokitu daitezke. Aukera bat ere ez da beti onena.
Zergatik erabiltzen da Base64 e-postan?
MIME-k Base64 erabil dezake eranskin binarioa testu-seguru karaktere gisa joan dadin. Tamaina-gainkostu bera aplikatzen da oraindik. Garraio-ordezkaritza da, ez fitxategi txikiagoa.
Noiz merezi du tamaina extra horrek?
Tamaina extra merezi dezake binarioak testuaren barruan egon behar duenean, karga txikia denean, API batek Base64 eskatzen duenean, edo Data URL bat behar duzunean. Euskarri handietarako, nahiago binario gordina sistemak onartzen duenean.
Noiz saihestu behar duzu Base64?
Saltatu fitxategi handietan, banda-zabalera estuan, transferentzia maizetan, edo bide binarioa dagoeneko existitzen denean — egoeraren araberakoa, ez «Base64 praktika txarra da».
Egiaztatu ditzakezun Base64 betegarri luzerak
Jatorrizko byte-kontuak eta betegarria duen Base64 estandarraren karaktere-kontuak:
| Jatorrizko byteak | Base64 karaktereak |
|---|---|
| 1 | 4 |
| 2 | 4 |
| 3 | 4 |
| 10 | 16 |
| 100 | 136 |
| 1,000 | 1,336 |
Errenkada guztiek 4 × ceil(n / 3) jarraitzen dute. Base64 karaktere-kontuak dira.
Adibidea: zenbatekoa izango da 1,000 byteko fitxategi bat?
4 × ceil(1000 / 3). ceil(333.333…) = 334, eta 4 × 334 = 1336. Beraz 1,000 byte 1,336 Base64 karaktere bihurtzen dira. UTF-8/ASCII gisa gordeta, karaktere bakoitza normalean 1 byte da — ez tratatu 1,336 memoria-barneko byte-kontu zehatz gisa.
Base64k fitxategi-tamainak iradokitzen duena baino memoria gehiago erabil dezake?
Ingurune batzuek kateak karaktere bakoitzeko 1 byte baino gehiagorekin gordetzen dituzte, eta kodetze/deskodetzeak bufferra eta katea batera gorde ditzakete. Memoria-erabilera ez da zehazki karaktere-luzera.
Tamainari buruzko erabaki-gida sinplea
Sistemak binario gordina onartzen badu, nahiago ezazu tamainagatik. Testua bakarrik onartzen bada, Base64 egokitu daiteke. Karga handirako, bilatu igoera binarioko bidea. URL-seguru testurako, kontuan hartu Base64URL — 3tik 4rako hedapena berean geratzen da.
- Datu binarioak bidali behar
- Binario gordina onartzen da? Nahiago binarioa tamainagatik
- Testu-bakar eremua? Base64 egokia izan daiteke
- Karga handia? Bilatu igoera binarioko bidea
- URL-seguru testua behar? Kontuan hartu Base64URL
- Itxaron %33 inguru testu gehiago sarrera handietan
Base64 ez dago datuak txikiago egiteko diseinatuta. Binarioa testu-sistemen barruan adieraztea errazten du, eta kostua tamaina extra da.
Kodetu edo deskodetu Base64 nabigatzailean
NEXNARA Kodeatu Base64 testua kodetzen eta deskodetzen du, eta fitxategi bat Base64 edo Data URL bihur dezake eta Base64 fitxategi bihurtu atzera.
Testuak UTF-8 byteak erabiltzen ditu, gero Base64 — ez ASCII soilik. Aukeratu Standard edo Base64URL. Fitxategi-irteera Base64 gordin edo Data URL izan daiteke (alfabeto estandarra). Sarrera baliogabea baztertzen da. UTF-8 ez diren byteek Fitxategira behar dute, ez testu-deskodetzea.
10 MB baino handiagoak diren fitxategiek fitxa moteldu dezakete (abisua). 32 MB baino handiagoak blokeatzen dira.
Kodetzea eta deskodetzea zure nabigatzailean gertatzen dira. Fitxategia ez da NEXNARA zerbitzarira bidaltzen tresna honetarako. Iragarkiek eta guneko beste ezaugarriek sarea erabiltzen jarraitzen dute.
Itsatsi testua edo fitxategi bat Kodeatu Base64 tresnan eta alderatu jatorrizko byteak kodettutako luzerarekin.
FAQ
Zergatik handitzen du Base64k fitxategi-tamaina?
3 byte (24 bit) 4 karakteretara mapatzen ditu (4 × 6 bit). Testu gisa gordeta, hori hiru heren inguru gehiago da sarrera handietan.
Base64 beti al da %33 handiagoa?
Ez. Sarrera handiak %33.3 ingurura hurbiltzen dira. Sarrera txiki-txikiak gehiago hazi daitezke betegarriagatik. Erabili 4 × ceil(n / 3).
Zenbat handiagoa da Base64 binarioa baino?
Betegarria duen luzera estandarra 4 × ceil(n / 3) karaktere da. Data URL aurrizkiak gehiago gehitzen du.
Base64 konpresioak fitxategi-tamaina murrizten al du?
Base64k ez du konprimitzen. Kodettutako testuaren gaineko gzip edo Brotli-k zati bat txikitu dezakete; ez dute gainkostua kasu guztietan ezabatzen.
Base64URLk toki gutxiago erabiltzen al du?
= betegarria kendu dezake, beraz katea 0–2 karaktere laburragoa izan daiteke. 3tik 4rako kodeketa-egitura bera da.
Fitxategi handietarako Base64 erabili behar al dut?
Testua behar baduzu bakarrik. Transferentzia handi edo maizetarako, bide binarioa maiz txikiagoa da. Base64 ez da beti okerra APIetan.