Tech Help

Base64 faylları niyə böyüdür?

Base64 adətən binar məlumatı təxminən üçdə bir böyüdür. 3 baytdan 4 simvola quruluşu, doldurmanı, Data URL əlavə xərcini və bu ölçünün nə vaxt dəydiyini görün.

Qısa cavab

Base64 adətən binar məlumatı təxminən üçdə bir böyüdür, çünki hər 3 bayt binar məlumatı 4 çapolunan Base64 simvolu ilə təmsil edir.

Giriş uzunluğu 3-ün dəqiq misli deyilsə, standart doldurulmuş Base64 = simvolları əlavə edə bilər. Kodlanmış uzunluq 4 × ceil(n / 3)-dür, n orijinal bayt uzunluğudur.

«Təxminən 33%» böyük girişləri təsvir edir. Miniatur girişlərdə faiz doldurma üzündən xeyli böyük görünə bilər. Base64 sıxışdırma deyil. Kodlama ilə şifrələmə üçün [Base64 şifrələmə deyil: əslində nə edir](/az/story/base64-is-not-encryption) baxın.

Bu məqalə Base64 çıxışının orijinal baytlardan niyə böyük olduğunu izah edir. Təhlükəsizlik bələdçisi deyil. Kodlama ilə şifrələmə lazımdırsa, Base64 şifrələmə deyil: əslində nə edir istifadə edin.

Base64 niyə daha çox yerə ehtiyac duyur?

3 bayt 24 bitdir. Base64 o 24 biti 6 bitlik 4 qrupa bölür. Hər qrup bir Base64 simvoluna uyğun gəlir, beləcə 3 giriş baytı 4 çıxış simvolu olur. ASCII simvolu başına 1 bayt saxlananda bu 4 / 3 ≈ 1.333-dür — təxminən 33.3% artım.

  • 3 bayt (24 bit)
  • 6 bitlik 4 qrupa bölün
  • Hər qrup → bir Base64 simvolu
  • 4 simvol (çox vaxt 4 bayt mətn)
3 bayt → 4 simvol addımı ölçü xərcidir. Doldurma qısa girişlərdə bir az daha əlavə edə bilər.

Sadə, yoxlana bilən nümunə

Bu kodlamalar standart doldurulmuş Base64 ilə üst-üstə düşür.

Man

Man

Base64

TWFu

Man 3 UTF-8/ASCII baytdır. TWFu 4 simvoldur: 3 → 4.

Hello

Hello

Base64

SGVsbG8=

Hello 5 baytdır. SGVsbG8= 8 simvoldur, bir = daxil. Kiçik məlumatda doldurma faizi 33%-dən böyük göstərir.

Base64 ölçüsü necə hesablanır?

Standart doldurulmuş Base64 üçün encodedLength = 4 × ceil(originalBytes / 3).

Orijinal baytlar Base64 simvolları
14
24
34
48
58
68

1 və ya 2 bayt yenə 4 simvol verir. Sabit 33% yox, düsturu istifadə edin.

«=» doldurması nə deməkdir?

= işarəsi son 3 baytlıq blokun dolu olmadığını göstərir. 1 giriş baytı iki = simvolu istifadə edir; 2 bayt birini; 3 bayt heç birini. Doldurma şifrələmə və ya təhlükəsizlik xüsusiyyəti deyil.

Base64URL daha az yer tutur?

Base64URL + işarəsini - ilə, / işarəsini _ ilə əvəz edir və Base64 kodla kodlayanda sondakı = buraxır. Bu, sətri həmin = simvolları qədər qısalda bilər. 3 bayt → 4 simvol quruluşu eyni qalır, ona görə Base64URL daha yer-səmərəli binar format deyil.

Miniatur girişlər niyə 33%-dən çox arta bilər?

1 bayt → 4 simvol uzunluqda 300% artımdır. 2 bayt → 4 100%-dir. 3 bayt → 4 təxminən 33.3%-dir. n artdıqca doldurma az əhəmiyyət daşıyır və əlavə xərc təxminən 33%-ə yaxınlaşır. Base64 həmişə dəqiq 33% böyük deyil.

Base64 Data URL niyə daha da böyükdür?

Data URL yükdən əvvəl data:image/png;base64, kimi prefiks əlavə edir. Miniatur faylda o prefiks faizi üstələyə bilər. Base64 kodla xam Base64 və ya Data URL verə bilər; Data URL çıxışı standart əlifbadan istifadə edir.

Base64 və binar: hansı kiçikdir?

Xam binar daşınma və saxlama üçün daha yer-səmərəlidir. Base64 böyükdür, amma JSON, e-poçt və digər yalnız-mətn yollarında mətn-təhlükəsizdir. Binardan mətnə kodlamadır, sıxışdırma deyil.

Base64 faylları sıxır?

Xeyr. Base64 sıxışdırma formatı deyil. Kodlanmış mətn adətən orijinal baytlardan böyükdür. Sonra o mətnə gzip və ya Brotli tətbiq etsəniz, bəzi artıqlıq kiçilə bilər — nəticə məlumatdan və sıxışdırıcıdan asılıdır. gzip Base64 əlavə xərcini tam silmir.

Base64 gzip-lənsə nə olur?

HTTP sıxışdırması Base64 mətnindəki bəzi təkrarlanan nümunələri azalda bilər. JPEG, PNG və ya ZIP hətta xam bayt kimi də pis sıxılır, Base64-sonra-gzip də hələ haldan asılıdır. gzip-dən sonra universal əlavə faiz yoxdur.

Faylları Base64 kimi saxlamalısınız?

Base64 binari JSON sahəsinə, kiçik daxili resursa, yalnız-mətn API-yə, kopyala/yapışdır və ya Data URL-ə sığdıra bilər. Böyük fayllarda saxlama, yaddaş və yük ölçüsü hamısı böyüyür. Bu «fayllar üçün heç vaxt Base64 istifadə etməyin» demək deyil.

Base64 JSON API-lərində niyə yaygındır?

JSON-un doğma xam-binar tipi yoxdur, ona görə API-lər tez-tez baytları Base64 sətrinə qoyur. Böyük fayllar üçün multipart/form-data, obyekt saxlaması və ya birbaşa binar yükləmə daha uyğun ola bilər. Heç bir seçim həmişə ən yaxşı deyil.

E-poçtda Base64 niyə istifadə olunur?

MIME binar əlavənin mətn-təhlükəsiz simvol kimi getməsi üçün Base64 istifadə edə bilər. Eyni ölçü əlavə xərci yenə tətbiq olunur. Bu daşınma təmsilidir, kiçik fayl deyil.

Əlavə ölçü nə vaxt dəyər?

Əlavə ölçü o zaman dəyə bilər ki, binar mətndə oturmalıdır, yük kiçikdir, API Base64 tələb edir, və ya Data URL lazımdır. Böyük media üçün sistem icazə verəndə xam binara üstünlük verin.

Base64-dən nə vaxt çəkinməlisiniz?

Böyük fayllarda, dar ötürmə qabiliyyətində, tez-tez ötürmələrdə, və ya binar yol artıq olanda keçin — situasiyadan asılıdır, «Base64 pis təcrübədir» deyil.

Yoxlaya biləcəyiniz doldurulmuş Base64 uzunluqları

Orijinal bayt sayları və standart doldurulmuş Base64 simvol sayları:

Orijinal baytlar Base64 simvolları
14
24
34
1016
100136
1,0001,336

Bütün sətirlər 4 × ceil(n / 3) izləyir. Bunlar Base64 simvol saylarıdır.

Nümunə: 1,000 baytlıq fayl nə qədər olacaq?

4 × ceil(1000 / 3). ceil(333.333…) = 334, və 4 × 334 = 1336. Beləcə 1,000 bayt 1,336 Base64 simvolu olur. UTF-8/ASCII kimi saxlananda hər simvol adətən 1 baytdır — 1,336-nı dəqiq yaddaşdakı bayt sayı saymayın.

Base64 fayl ölçüsünün göstərdiyindən çox yaddaş istifadə edə bilər?

Bəzi mühitlər sətirləri simvol başına 1 baytdan çox saxlayır, kodlama/dekodlama bufer və sətri eyni vaxtda saxlaya bilər. Yaddaş istifadəsi dəqiq simvol uzunluğu deyil.

Ölçü üçün sadə qərar bələdçisi

Sistem xam binar qəbul edirsə, ölçü üçün ona üstünlük verin. Yalnız mətnə icazə varsa, Base64 uyğun gələ bilər. Böyük yük üçün binar yükləmə yolu axtarın. URL-təhlükəsiz mətn üçün Base64URL düşünün — 3-dən 4-ə genişlənmə qalır.

  • Binar məlumat göndərmək lazımdır
  • Xam binar icazəlidir? Ölçü üçün binara üstünlük verin
  • Yalnız-mətn sahəsi? Base64 uyğun ola bilər
  • Böyük yük? Binar yükləmə yolu axtarın
  • URL-təhlükəsiz mətn lazımdır? Base64URL düşünün
  • Böyük girişlərdə təxminən 33% daha çox mətn gözləyin
Base64 mətn uyğunluğu alır. Kiçik fayl almır.
Base64 yeri mətn uyğunluğuna dəyişir

Base64 məlumatı kiçiltmək üçün nəzərdə tutulmayıb. Binari mətn əsaslı sistemlərdə təmsil etməyi asanlaşdırır, xərc isə əlavə ölçüdür.

Brauzerdə Base64 kodlayın və ya dekodlayın

NEXNARA Base64 kodla mətni kodlayır və dekodlayır, faylı Base64 və ya Data URL-ə çevirə, Base64-ü yenidən fayla qaytara bilər.

Mətn UTF-8 baytları, sonra Base64 istifadə edir — yalnız ASCII deyil. Standard və ya Base64URL seçin. Fayl çıxışı xam Base64 və ya Data URL ola bilər (standart əlifba). Etibarsız giriş rədd edilir. UTF-8 olmayan baytlar Fayla ehtiyac duyur, mətn dekodu yox.

10 MB-dən böyük fayllar vərəqi yavaşlada bilər (xəbərdarlıq). 32 MB-dən böyük fayllar bloklanır.

Kodlama və dekodlama brauzerinizdə baş verir. Bu alət üçün fayl NEXNARA serverinə göndərilmir. Reklamlar və saytın digər funksiyaları hələ də şəbəkədən istifadə edir.

Base64 kodla içində mətn və ya fayl yapışdırın və orijinal baytları kodlanmış uzunluqla müqayisə edin.

FAQ

Base64 fayl ölçüsünü niyə artırır?

3 baytı (24 bit) 4 simvola (4 × 6 bit) uyğunlaşdırır. Mətn kimi saxlananda böyük girişlərdə bu təxminən üçdə bir çoxdur.

Base64 həmişə 33% böyükdür?

Xeyr. Böyük girişlər təxminən 33.3%-ə yaxınlaşır. Miniatur girişlər doldurma üzündən daha çox arta bilər. 4 × ceil(n / 3) istifadə edin.

Base64 bindan nə qədər böyükdür?

Standart doldurulmuş uzunluq 4 × ceil(n / 3) simvoldur. Data URL prefiksi daha əlavə edir.

Base64 sıxışdırması fayl ölçüsünü azaldır?

Base64 sıxmır. Kodlanmış mətn üzərində gzip və ya Brotli bir hissəni kiçildə bilər; əlavə xərci hər halda silmir.

Base64URL daha az yer tutur?

= doldurmasını sala bilər, beləcə sətr 0–2 simvol qısa ola bilər. 3-dən 4-ə kodlama quruluşu eynidir.

Böyük fayllar üçün Base64 istifadə etməliyəm?

Yalnız mətn lazımdırsa. Böyük və ya tez-tez ötürmələrdə binar yol çox vaxt kiçikdir. Base64 API-lərdə həmişə səhv deyil.