Tech Help

Base64 файлдарды неге үлкейтеді?

Base64 әдетте екілік деректерді шамамен үштен бірге үлкейтеді. 3 байттан 4 таңбаға құрылымды, толтыруды, Data URL қосымша шығынын және бұл өлшем қашан тұратынын көріңіз.

Қысқа жауап

Base64 әдетте екілік деректерді шамамен үштен бірге үлкейтеді, өйткені әр 3 байт екілік деректерді 4 басылатын Base64 таңбасымен көрсетеді.

Кіріс ұзындығы 3-тің дәл еселігі болмаса, стандарт толтырылған Base64 = таңбаларын қоса алады. Кодталған ұзындық 4 × ceil(n / 3), n — түпнұсқа байт ұзындығы.

«Шамамен 33%» үлкен кірістерді сипаттайды. Өте кішкентай кірістерде пайыз толтырудан әлдеқайда үлкен көрінуі мүмкін. Base64 қысу емес. Кодтау мен шифрлау үшін [Base64 шифрлау ма? Base64 деген не?](/kk/story/base64-is-not-encryption) қараңыз.

Бұл мақала Base64 шығысының түпнұсқа байттан неге үлкен екенін түсіндіреді. Қауіпсіздік нұсқаулығы емес. Кодтау мен шифрлау керек болса, Base64 шифрлау ма? Base64 деген не? пайдаланыңыз.

Base64 неге көбірек орын керек етеді?

3 байт — 24 бит. Base64 сол 24 битті 6 биттік 4 топқа бөледі. Әр топ бір Base64 таңбасына сәйкес келеді, сондықтан 3 кіріс байты 4 шығыс таңбасына айналады. ASCII таңбасына 1 байт сақталса, бұл 4 / 3 ≈ 1.333 — шамамен 33.3% өсу.

  • 3 байт (24 бит)
  • 6 биттік 4 топқа бөлу
  • Әр топ → бір Base64 таңбасы
  • 4 таңба (көбіне 4 байт мәтін)
3 байт → 4 таңба қадамы — өлшем шығыны. Толтыру қысқа кірістерде сәл қоса алады.

Қарапайым, тексерілетін мысал

Бұл кодтаулар стандарт толтырылған Base64-пен сәйкес келеді.

Man

Man

Base64

TWFu

Man — 3 UTF-8/ASCII байт. TWFu — 4 таңба: 3 → 4.

Hello

Hello

Base64

SGVsbG8=

Hello — 5 байт. SGVsbG8= — 8 таңба, бір = қоса. Кіші деректе толтыру пайызды 33%-дан үлкен көрсетеді.

Base64 өлшемі қалай есептеледі?

Стандарт толтырылған Base64 үшін encodedLength = 4 × ceil(originalBytes / 3).

Түпнұсқа байттар Base64 таңбалары
14
24
34
48
58
68

1 немесе 2 байт әлі 4 таңба береді. Тұрақты 33% емес, формуланы пайдаланыңыз.

«=» толтыруы нені білдіреді?

= белгісі соңғы 3 байттық блоктың толық болмағанын көрсетеді. 1 кіріс байты екі = таңбасын пайдаланады; 2 байт біреуін; 3 байт ешқайсысын. Толтыру шифрлау да, қауіпсіздік мүмкіндігі де емес.

Base64URL аз орын ала ма?

Base64URL + белгісін - етіп, / белгісін _ етіп өзгертеді, ал Base64 кодтау кодтағанда соңғы = қалдырады. Бұл жолды сол = таңбаларына қысқарта алады. 3 байт → 4 таңба құрылымы сол қалады, сондықтан Base64URL орынға тиімдірек екілік пішім емес.

Өте кішкентай кірістер неге 33%-дан көп өсуі мүмкін?

1 байт → 4 таңба ұзындықта 300% өсу. 2 байт → 4 — 100%. 3 байт → 4 шамамен 33.3%. n өскен сайын толтыру аз маңызды болады және үстеме шамамен 33%-ға жақындайды. Base64 әрқашан дәл 33% үлкен емес.

Base64 Data URL неге одан да үлкен?

Data URL жүктеме алдына data:image/png;base64, сияқты префикс қосады. Өте кішкентай файлда сол префикс пайызды басым ете алады. Base64 кодтау шикі Base64 немесе Data URL шығара алады; Data URL шығысы стандарт әліпбиді пайдаланады.

Base64 және екілік: қайсысы кіші?

Шикі екілік тасымал мен сақтау үшін орынға тиімдірек. Base64 үлкенірек, бірақ JSON, пошта және басқа тек-мәтін жолдарында мәтін-қауіпсіз. Екіліктен мәтінге кодтау, қысу емес.

Base64 файлдарды қыса ма?

Жоқ. Base64 қысу пішімі емес. Кодталған мәтін әдетте түпнұсқа байттан үлкен. Кейін сол мәтінге gzip немесе Brotli қолдансаңыз, кейбір артықшылық кішіреюі мүмкін — нәтиже дерек пен қысқышқа байланысты. gzip Base64 үстемесін толық жоймайды.

Base64-ке gzip қолданылса не болады?

HTTP қысуы Base64 мәтініндегі кейбір қайталанатын өрнектерді азайта алады. JPEG, PNG немесе ZIP тіпті шикі байт ретінде де нашар қысылады, Base64-сосын-gzip әлі жағдайға байланысты. gzip-тен кейін әмбебап қосымша пайыз жоқ.

Файлдарды Base64 ретінде сақтау керек пе?

Base64 екілікті JSON өрісіне, кіші кірістірілген ресурсқа, тек-мәтін API-ге, көшіру/қоюға немесе Data URL-ге сыйғыза алады. Үлкен файлдарда сақтау, жад және жүктеме өлшемі бәрі өседі. Бұл «файлдар үшін ешқашан Base64 пайдаланбаңыз» деген сөз емес.

Base64 JSON API-лерде неге жиі?

JSON-да түпнұсқа шикі-екілік түрі жоқ, сондықтан API-лер көбіне байттарды Base64 жолына қояды. Үлкен файлдар үшін multipart/form-data, нысан сақтауы немесе тікелей екілік жүктеу жақсырақ сай келуі мүмкін. Ешбір таңдау әрқашан ең жақсы емес.

Поштада Base64 неге пайдаланылады?

MIME екілік тіркеменің мәтін-қауіпсіз таңбалар ретінде жүруі үшін Base64 пайдалана алады. Сол өлшем үстемесі әлі қолданылады. Бұл тасымал көрінісі, кішірек файл емес.

Қосымша өлшем қашан тұрады?

Қосымша өлшем екілік мәтін ішінде отыруы керек болғанда, жүктеме кіші болғанда, API Base64 талап еткенде немесе Data URL керек болғанда тұруы мүмкін. Үлкен медиа үшін жүйе рұқсат етсе шикі екілікті ұнатыңыз.

Base64-тен қашан аулақ болу керек?

Үлкен файлдарда, тар өткізу жолағында, жиі жіберулерде немесе екілік жол әлдеқашан бар кезде өткізіп жіберіңіз — жағдайға байланысты, «Base64 жаман тәжірибе» емес.

Тексере алатын толтырылған Base64 ұзындықтары

Түпнұсқа байт саны және стандарт толтырылған Base64 таңба саны:

Түпнұсқа байттар Base64 таңбалары
14
24
34
1016
100136
1,0001,336

Барлық жолдар 4 × ceil(n / 3) бойынша. Бұлар Base64 таңба саны.

Мысал: 1,000 байттық файл қанша болады?

4 × ceil(1000 / 3). ceil(333.333…) = 334, және 4 × 334 = 1336. Сондықтан 1,000 байт 1,336 Base64 таңбасына айналады. UTF-8/ASCII ретінде сақталса, әр таңба әдетте 1 байт — 1,336-ны жадтағы дәл байт саны деп санамаңыз.

Base64 файл өлшемі көрсеткеннен көп жад пайдалана ала ма?

Кейбір орталар жолдарды таңбасына 1 байттан көп сақтайды, кодтау/декодтау буфер мен жолды бірге ұстауы мүмкін. Жад пайдалануы дәл таңба ұзындығы емес.

Өлшем үшін қарапайым шешім нұсқаулығы

Жүйе шикі екілікті қабылдаса, өлшем үшін оны ұнатыңыз. Тек мәтінге рұқсат болса, Base64 сай келуі мүмкін. Үлкен жүктеме үшін екілік жүктеу жолын тексеріңіз. URL-қауіпсіз мәтін үшін Base64URL қарастырыңыз — 3-тен 4-ке кеңею қалады.

  • Екілік дерек жіберу керек
  • Шикі екілікке рұқсат бар ма? Өлшем үшін екілікті ұнатыңыз
  • Тек-мәтін өрісі? Base64 сай болуы мүмкін
  • Үлкен жүктеме? Екілік жүктеу жолын тексеріңіз
  • URL-қауіпсіз мәтін керек пе? Base64URL қарастырыңыз
  • Үлкен кірістерде шамамен 33% көп мәтін күтіңіз
Base64 мәтін үйлесімділігін сатып алады. Кішірек файл сатып алмайды.
Base64 орынды мәтін үйлесімділігіне айырбастайды

Base64 деректерді кішірейту үшін жасалмаған. Екілікті мәтінге негізделген жүйелерде көрсетуді жеңілдетеді, шығын — қосымша өлшем.

Браузерде Base64 кодтаңыз немесе декодтаңыз

NEXNARA Base64 кодтау мәтінді кодтайды және декодтайды, файлды Base64 немесе Data URL ете алады және Base64-ті файлға қайтара алады.

Мәтін UTF-8 байттарын, содан кейін Base64 пайдаланады — тек ASCII емес. Standard немесе Base64URL таңдаңыз. Файл шығысы шикі Base64 немесе Data URL болуы мүмкін (стандарт әліпби). Жарамсыз кіріс қабылданбайды. UTF-8 емес байттар Файлға керек, мәтін декодына емес.

10 MB-тан үлкен файлдар қойындыны баяулатуы мүмкін (ескерту). 32 MB-тан үлкен файлдар бұғатталады.

Кодтау мен декодтау браузеріңізде болады. Бұл құрал үшін файл NEXNARA серверіне жіберілмейді. Жарнамалар мен сайттың басқа мүмкіндіктері әлі де желіні пайдаланады.

Base64 кодтау ішіне мәтін немесе файл қойып, түпнұсқа байттарды кодталған ұзындықпен салыстырыңыз.

FAQ

Base64 файл өлшемін неге арттырады?

3 байтты (24 бит) 4 таңбаға (4 × 6 бит) сәйкестендіреді. Мәтін ретінде сақталса, үлкен кірістерде бұл шамамен үштен бір көп.

Base64 әрқашан 33% үлкен бе?

Жоқ. Үлкен кірістер шамамен 33.3%-ға жақындайды. Өте кішкентай кірістер толтырудан көбірек өсуі мүмкін. 4 × ceil(n / 3) пайдаланыңыз.

Base64 екіліктен қанша үлкен?

Стандарт толтырылған ұзындық 4 × ceil(n / 3) таңба. Data URL префиксі тағы қосады.

Base64 қысуы файл өлшемін азайта ма?

Base64 қыспайды. Кодталған мәтін үстінде gzip немесе Brotli бір бөлігін кішірейте алады; үстемені әр жағдайда жоймайды.

Base64URL аз орын ала ма?

= толтыруын тастауы мүмкін, сондықтан жол 0–2 таңба қысқа болуы мүмкін. 3-тен 4-ке кодтау құрылымы бірдей.

Үлкен файлдар үшін Base64 пайдалануым керек пе?

Тек мәтін керек болса. Үлкен немесе жиі жіберулерде екілік жол көбіне кішірек. Base64 API-лерде әрқашан қате емес.

Tech Help

Base64 шифрлау ма? Base64 деген не?

Жоқ. Base64 — кодтау. Оны декодтау оңай және құпиясөздерді немесе құпияларды қорғауға пайдалануға болмайды. Неліктен Base64 үлкенірек?

Tech Help

PDF неге сонша үлкен? 7 себеп және оны қалай кішірейту

PDF файлы неге үлкен екенін және сапаны артық құрбан етпей өлшемді қалай азайту керектігін біліңіз.

Tech Help

PNG файлым неге осынша үлкен? Бұзбай қалай кішірейтуге болады

PNG үлкен болуы мүмкін, себебі ол lossless және мөлдірлікті сақтай алады. PNG-ні қысыңыз, керек болса өлшемді өзгертіңіз немесе фотоларды JPEG не WebP-ке айналдырыңыз.

Tech Help

Скриншоттар үшін JPG vs PNG: қайсысы кіші?

Скриншот үшін мазмұнға қарай JPG не PNG таңдаңыз: UI мен мәтін жиі PNG-де өткір қалады; фото көп кадрлар JPEG-де кішірек болуы мүмкін.

Tech Help

JSON.parse неге "Unexpected token" дейді?

JSON.parse мәтін жарамды JSON болмағанда Unexpected token лақтырады. Жалғыз тырнақша, соңғы үтір, HTML жауаптары мен қате орнын жөндеңіз.