Tech Help
Base64 файлнуудыг яагаад томруулдаг вэ?
Base64 ихэвчлэн хоёртын өгөгдлийг ойролцоогоор гуравны нэгээр томруулдаг. 3 байтаас 4 тэмдэгт бүтэц, дүүргэлт, Data URL нэмэлт зардал, энэ хэмжээ хэзээ үнэ цэнэтэйг харна уу.
Base64 ихэвчлэн хоёртын өгөгдлийг ойролцоогоор гуравны нэгээр томруулдаг, учир нь хоёртын өгөгдлийн 3 байт бүрийг 4 хэвлэгдэх Base64 тэмдэгтээр илэрхийлдэг.
Оролтын урт 3-ын яг үржвэр биш бол стандарт дүүргэсэн Base64 = тэмдэгт нэмж болно. Кодчилсон урт нь 4 × ceil(n / 3), n нь эх байтын урт.
«Ойролцоогоор 33%» том оролтыг тодорхойлно. Маш жижиг оролтод хувь дүүргэлтээс болж хамаагүй том харагдаж болно. Base64 шахалт биш. Кодчилол ба шифрлэлтийн тулд [Base64 шифрлэлт үү? Base64 гэж юу вэ?](/mn/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 байт текст)
Энгийн, шалгаж болох жишээ
Эдгээр кодчилол стандарт дүүргэсэн 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 тэмдэгтүүд |
|---|---|
| 1 | 4 |
| 2 | 4 |
| 3 | 4 |
| 4 | 8 |
| 5 | 8 |
| 6 | 8 |
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 хэрэглэвэл зарим илүүдэл жижигрэж болно — үр дүн өгөгдөл болон шахagчаас хамаарна. 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 тэмдэгтүүд |
|---|---|
| 1 | 4 |
| 2 | 4 |
| 3 | 4 |
| 10 | 16 |
| 100 | 136 |
| 1,000 | 1,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 кодчил эсвэл тайла
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-д үргэлж буруу биш.