Tech Help
Kāpēc Base64 palielina failus?
Base64 parasti bināros datus palielina apmēram par trešdaļu. Skatiet 3 baitu uz 4 rakstzīmēm struktūru, aizpildi, Data URL izmaksu un kad papildu izmērs ir tā vērts.
Base64 parasti bināros datus palielina apmēram par trešdaļu, jo katri 3 bināro datu baiti tiek attēloti ar 4 drukājamām Base64 rakstzīmēm.
Ja ievades garums nav precīzs 3 daudzkārtnis, standarta Base64 ar aizpildi var pievienot = rakstzīmes. Kodētais garums ir 4 × ceil(n / 3), kur n ir sākotnējais baitu garums.
«Apmēram 33 %» raksturo lielas ievades. Sīkās ievadēs procents aizpildes dēļ var izskatīties daudz lielāks. Base64 nav saspiešana. Kodēšanai pret šifrēšanu skatiet [Base64 nav šifrēšana: ko tas patiesībā dara](/lv/story/base64-is-not-encryption).
Šis raksts skaidro, kāpēc Base64 izvade ir lielāka par sākotnējiem baitiem. Tas nav drošības ceļvedis. Ja vajag kodēšanu pret šifrēšanu, izmantojiet Base64 nav šifrēšana: ko tas patiesībā dara.
Kāpēc Base64 vajag vairāk vietas?
3 baiti ir 24 biti. Base64 tos 24 bitus sadala 4 grupās pa 6 bitiem. Katra grupa atbilst vienai Base64 rakstzīmei, tāpēc 3 ievades baiti kļūst par 4 izvades rakstzīmēm. Glabājot kā 1 baitu uz ASCII rakstzīmi, tas ir 4 / 3 ≈ 1.333 — apmēram 33.3 % pieaugums.
- 3 baiti (24 biti)
- Sadalījums 4 grupās pa 6 bitiem
- Katra grupa → viena Base64 rakstzīme
- 4 rakstzīmes (bieži 4 teksta baiti)
Vienkāršs, pārbaudāms piemērs
Šīs kodēšanas atbilst standarta Base64 ar aizpildi.
Man
Man
Base64
TWFu
Man ir 3 UTF-8/ASCII baiti. TWFu ir 4 rakstzīmes: 3 → 4.
Hello
Hello
Base64
SGVsbG8=
Hello ir 5 baiti. SGVsbG8= ir 8 rakstzīmes, ieskaitot vienu =. Mazos datos aizpilde liek procentam izskatīties lielākam par 33 %.
Kā aprēķināt Base64 izmēru?
Standarta Base64 ar aizpildi, encodedLength = 4 × ceil(originalBytes / 3).
| Sākotnējie baiti | Base64 rakstzīmes |
|---|---|
| 1 | 4 |
| 2 | 4 |
| 3 | 4 |
| 4 | 8 |
| 5 | 8 |
| 6 | 8 |
1 vai 2 baiti joprojām dod 4 rakstzīmes. Izmantojiet formulu, ne fiksētus 33 %.
Ko nozīmē «=» aizpilde?
Zīme = rāda, ka pēdējais 3 baitu bloks nebija pilns. 1 ievades baits izmanto divas = rakstzīmes; 2 baiti — vienu; 3 baiti — nevienu. Aizpilde nav šifrēšana un nav drošības funkcija.
Vai Base64URL izmanto mazāk vietas?
Base64URL maina + uz - un / uz _, un Kodēt Base64 kodējot izlaiž beigu =. Tas var saīsināt virkni par tām = rakstzīmēm. 3 baitu → 4 rakstzīmju struktūra paliek tāda pati, tāpēc Base64URL nav vietas ziņā efektīvāks binārs formāts.
Kāpēc sīkas ievades var pieaugt vairāk par 33 %?
1 baits → 4 rakstzīmes ir 300 % garuma pieaugums. 2 baiti → 4 ir 100 %. 3 baiti → 4 ir apmēram 33.3 %. Kad n aug, aizpilde mazāk ietekmē un izmaksas tuvojas apmēram 33 %. Base64 ne vienmēr ir precīzi 33 % lielāks.
Kāpēc Base64 Data URL ir vēl lielāks?
Data URL pirms slodzes pievieno prefiksu, piemēram data:image/png;base64,. Sīkā failā šis prefikss var dominēt procentā. Kodēt Base64 var izdot neapstrādātu Base64 vai Data URL; Data URL izvade izmanto standarta alfabētu.
Base64 pret bināro: kurš ir mazāks?
Neapstrādāti binārie dati vietas ziņā ir efektīvāki transportam un glabāšanai. Base64 ir lielāks, bet drošs kā teksts JSON, e-pastā un citos tikai teksta ceļos. Tā ir binārā uz teksta kodēšana, ne saspiešana.
Vai Base64 saspiež failus?
Nē. Base64 nav saspiešanas formāts. Kodētais teksts parasti ir lielāks par sākotnējiem baitiem. Ja pēc tam šim tekstam lietojat gzip vai Brotli, daļa pārpalikuma var sarukt — rezultāts atkarīgs no datiem un saspiestāja. gzip pilnībā nenoņem Base64 izmaksas.
Kas notiek, ja Base64 saspiež ar gzip?
HTTP saspiešana var samazināt dažus atkārtotus Base64 teksta modeļus. JPEG, PNG vai ZIP bieži slikti saspiežas pat kā neapstrādāti baiti, un Base64-tad-gzip joprojām ir atkarīgs no gadījuma. Pēc gzip nav universāla papildu procenta.
Vai failus glabāt kā Base64?
Base64 var ielikt bināro JSON laukā, mazā iegultā resursā, tikai teksta API, kopēšanā/ielīmēšanā vai Data URL. Lieliem failiem aug glabāšana, atmiņa un slodzes izmērs. Tas nav «nekad nelietojiet Base64 failiem».
Kāpēc Base64 ir bieži JSON API?
JSON nav vietēja neapstrādāta binārā tipa, tāpēc API bieži baitus liek Base64 virknē. Lieliem failiem labāk var derēt multipart/form-data, objektu glabātuve vai tieša bināra augšupielāde. Neviena izvēle nav vienmēr vislabākā.
Kāpēc Base64 lieto e-pastā?
MIME var izmantot Base64, lai binārs pielikums ceļotu kā tekstam drošas rakstzīmes. Tās pašas izmēra izmaksas joprojām darbojas. Tā ir transporta attēlojums, ne mazāks fails.
Kad papildu izmērs ir tā vērts?
Papildu izmērs var būt tā vērts, kad binārajam jāatrodas tekstā, slodze ir maza, API prasa Base64 vai vajag Data URL. Lieliem medijiem dodiet priekšroku neapstrādātam binārajam, ja sistēma to ļauj.
Kad no Base64 izvairīties?
Izlaidiet to lieliem failiem, šaurai joslai, biežiem pārsūtījumiem vai kad binārs ceļš jau ir — pēc situācijas, ne «Base64 ir slikta prakse».
Base64 ar aizpildi garumi, ko varat pārbaudīt
Sākotnējo baitu skaiti un standarta Base64 ar aizpildi rakstzīmju skaiti:
| Sākotnējie baiti | Base64 rakstzīmes |
|---|---|
| 1 | 4 |
| 2 | 4 |
| 3 | 4 |
| 10 | 16 |
| 100 | 136 |
| 1,000 | 1,336 |
Visas rindas seko 4 × ceil(n / 3). Tie ir Base64 rakstzīmju skaiti.
Piemērs: cik liels kļūs 1,000 baitu fails?
4 × ceil(1000 / 3). ceil(333.333…) = 334, un 4 × 334 = 1336. Tātad 1,000 baiti kļūst par 1,336 Base64 rakstzīmēm. Glabājot kā UTF-8/ASCII, katra rakstzīme parasti ir 1 baits — neuzskatiet 1,336 par precīzu baitu skaitu atmiņā.
Vai Base64 var izmantot vairāk atmiņas, nekā liek domāt faila izmērs?
Dažas vides virknes glabā ar vairāk nekā 1 baitu uz rakstzīmi, un kodēšana/atkodēšana var turēt buferi un virkni kopā. Atmiņas lietojums nav precīzi garums rakstzīmēs.
Vienkāršs izmēra lēmuma ceļvedis
Ja sistēma pieņem neapstrādātu bināro, dodiet tam priekšroku izmēra dēļ. Ja atļauts tikai teksts, Base64 var derēt. Lielai slodzei meklējiet bināras augšupielādes ceļu. URL drošam tekstam apsveriet Base64URL — 3-uz-4 izplešanās paliek.
- Jānosūta binārie dati
- Neapstrādāts binārais atļauts? Dot priekšroku binārajam izmēra dēļ
- Tikai teksta lauks? Base64 var būt piemērots
- Liela slodze? Meklēt bināras augšupielādes ceļu
- Vajag URL drošu tekstu? Apsvērt Base64URL
- Lielās ievadēs gaidīt apmēram 33 % vairāk teksta
Base64 nav veidots, lai datus padarītu mazākus. Tas atvieglo binārā attēlojumu teksta sistēmās, un cena ir papildu izmērs.
Kodējiet vai atkodējiet Base64 pārlūkā
NEXNARA Kodēt Base64 kodē un atkodē tekstu un var failu pārvērst Base64 vai Data URL un Base64 atgriezt atpakaļ failā.
Teksts iet UTF-8 baitos, tad Base64 — ne tikai ASCII. Izvēlieties Standard vai Base64URL. Faila izvade var būt neapstrādāts Base64 vai Data URL (standarta alfabēts). Nederīga ievade tiek noraidīta. Baitiem, kas nav UTF-8, vajag failu, ne teksta atkodēšanu.
Faili virs 10 MB var palēnināt cilni (brīdinājums). Faili virs 32 MB tiek bloķēti.
Kodēšana un atkodēšana notiek jūsu pārlūkā. Fails šim rīkam netiek sūtīts uz NEXNARA serveri. Reklāmas un citas vietnes funkcijas joprojām izmanto tīklu.
Ielīmējiet tekstu vai failu Kodēt Base64 un salīdziniet sākotnējos baitus ar kodēto garumu.
FAQ
Kāpēc Base64 palielina faila izmēru?
Tas attēlo 3 baitus (24 bitus) kā 4 rakstzīmes (4 × 6 biti). Glabājot kā tekstu, lielām ievadēm tas ir apmēram par trešdaļu vairāk.
Vai Base64 vienmēr ir par 33 % lielāks?
Nē. Lielas ievades tuvojas apmēram 33.3 %. Sīkas ievades aizpildes dēļ var pieaugt vairāk. Izmantojiet 4 × ceil(n / 3).
Cik Base64 ir lielāks par bināro?
Standarta garums ar aizpildi ir 4 × ceil(n / 3) rakstzīmes. Data URL prefikss pievieno vēl.
Vai Base64 saspiešana samazina faila izmēru?
Base64 nesaspiež. gzip vai Brotli kodētajam tekstam var daļu samazināt; tie katrā gadījumā nenodzēš izmaksas.
Vai Base64URL izmanto mazāk vietas?
Tas var izlaist = aizpildi, tāpēc virkne var būt 0–2 rakstzīmes īsāka. 3-uz-4 kodēšanas struktūra ir tāda pati.
Vai lietot Base64 lieliem failiem?
Tikai ja vajag tekstu. Lieliem vai biežiem pārsūtījumiem binārs ceļš bieži ir mazāks. Base64 API nav vienmēr nepareizs.