Tech Help
Base64 က ဖိုင်တွေကို ဘာကြောင့် ပိုကြီးစေတာလဲ။
Base64 သည် ဒွိဒေတာကို ပုံမှန်အားဖြင့် သုံးပုံတစ်ပုံခန့် ပိုကြီးစေသည်။ ဘိုက် ၃ လုံးမှ အက္ခရာ ၄ လုံး ဖွဲ့စည်းပုံ၊ ဖြည့်ခြင်း၊ Data URL အပိုအရွယ်အစားနှင့် ထိုအပိုကုန်ကျစရိတ် တန်သည့်အခါကို ကြည့်ပါ။
Base64 သည် ဒွိဒေတာ ဘိုက် ၃ လုံးစီကို ပုံနှိပ်နိုင်သော Base64 အက္ခရာ ၄ လုံးဖြင့် ကိုယ်စားပြုသောကြောင့် ဒွိဒေတာကို ပုံမှန်အားဖြင့် သုံးပုံတစ်ပုံခန့် ပိုကြီးစေသည်။
ထည့်သွင်းအရှည်သည် ၃ ၏ တိကျသော ဆတိုးကိန်း မဟုတ်ပါက စံဖြည့် Base64 သည် = အက္ခရာများ ထည့်နိုင်သည်။ ကုဒ်ပြောင်းအရှည်မှာ 4 × ceil(n / 3) ဖြစ်ပြီး n သည် မူလဘိုက်အရေအတွက် ဖြစ်သည်။
«၃၃% ခန့်» သည် ကြီးသော ထည့်သွင်းမှုများကို ဖော်ပြသည်။ အလွန်သေးသော ထည့်သွင်းမှုတွင် ဖြည့်ခြင်းကြောင့် ရာခိုင်နှုန်း ပိုကြီးနေသလို မြင်နိုင်သည်။ Base64 သည် ချုံ့ခြင်း မဟုတ်။ ကုဒ်ပြောင်းခြင်းနှင့် စာဝှက်ခြင်းအတွက် [Base64 သည် စာဝှက်ခြင်း ဟုတ်ပါသလား? Base64 ဆိုသည်မှာ အဘယ်နည်း?](/my/story/base64-is-not-encryption) ကို ကြည့်ပါ။
ဤဆောင်းပါးသည် Base64 အထွက်သည် မူလဘိုက်များထက် ဘာကြောင့် ပိုကြီးသည်ကို ရှင်းပြသည်။ လုံခြုံရေးလမ်းညွှန် မဟုတ်။ ကုဒ်ပြောင်းခြင်းနှင့် စာဝှက်ခြင်း လိုအပ်ပါက Base64 သည် စာဝှက်ခြင်း ဟုတ်ပါသလား? Base64 ဆိုသည်မှာ အဘယ်နည်း? ကို သုံးပါ။
Base64 က နေရာပိုလိုအပ်ရခြင်းမှာ အဘယ်ကြောင့်နည်း။
ဘိုက် ၃ လုံးသည် ၂၄ ဘစ် ဖြစ်သည်။ Base64 သည် ထို ၂၄ ဘစ်ကို ၆ ဘစ်အုပ်စု ၄ စု ခွဲသည်။ အုပ်စုတစ်ခုစီသည် Base64 အက္ခရာ တစ်လုံးနှင့် တိုက်ဆိုင်သောကြောင့် ထည့်သွင်းဘိုက် ၃ လုံးသည် အထွက်အက္ခရာ ၄ လုံး ဖြစ်လာသည်။ ASCII အက္ခရာတစ်လုံးလျှင် ၁ ဘိုက် သိမ်းပါက 4 / 3 ≈ 1.333 — ၃၃.၃% ခန့် တိုးသည်။
- ဘိုက် ၃ လုံး (၂၄ ဘစ်)
- ၆ ဘစ်အုပ်စု ၄ စုသို့ ခွဲပါ
- အုပ်စုတစ်ခုစီ → Base64 အက္ခရာ တစ်လုံး
- အက္ခရာ ၄ လုံး (စာသားဘိုက် ၄ လုံး ဖြစ်တတ်သည်)
ရိုးရှင်းပြီး စစ်ဆေးနိုင်သော ဥပမာ
ဤကုဒ်ပြောင်းမှုများသည် စံဖြည့် Base64 နှင့် ကိုက်ညီသည်။
Man
Man
Base64
TWFu
Man သည် UTF-8/ASCII ဘိုက် ၃ လုံး ဖြစ်သည်။ TWFu သည် အက္ခရာ ၄ လုံး: ၃ → ၄။
Hello
Hello
Base64
SGVsbG8=
Hello သည် ဘိုက် ၅ လုံး ဖြစ်သည်။ SGVsbG8= သည် = တစ်လုံး အပါအဝင် အက္ခရာ ၈ လုံး ဖြစ်သည်။ ဒေတာသေးပါက ဖြည့်ခြင်းက ရာခိုင်နှုန်းကို ၃၃% ထက် ပိုကြီးနေသလို မြင်စေသည်။
Base64 အရွယ်အစားကို ဘယ်လို တွက်မလဲ။
စံဖြည့် Base64 အတွက် encodedLength = 4 × ceil(originalBytes / 3) ဖြစ်သည်။
| မူလဘိုက် | Base64 အက္ခရာ |
|---|---|
| 1 | 4 |
| 2 | 4 |
| 3 | 4 |
| 4 | 8 |
| 5 | 8 |
| 6 | 8 |
ဘိုက် ၁ သို့မဟုတ် ၂ လုံးကပင် အက္ခရာ ၄ လုံး ထွက်သည်။ ပုံသေ ၃၃% မဟုတ်ဘဲ ပုံသေနည်းကို သုံးပါ။
«=» ဖြည့်ခြင်းက ဘာကို ဆိုလိုသလဲ။
= အမှတ်သည် နောက်ဆုံး ဘိုက် ၃ လုံးတုံး မပြည့်ကြောင်း ပြသည်။ ထည့်သွင်းဘိုက် ၁ လုံးသည် = နှစ်လုံး သုံးသည်၊ ဘိုက် ၂ လုံးသည် တစ်လုံး၊ ဘိုက် ၃ လုံးသည် မသုံး။ ဖြည့်ခြင်းသည် စာဝှက်ခြင်း သို့မဟုတ် လုံခြုံရေးအင်္ဂါရပ် မဟုတ်။
Base64URL က နေရာပိုနည်းသလား။
Base64URL သည် + ကို - သို့၊ / ကို _ သို့ ပြောင်းပြီး Base64 ကုဒ် သည် ကုဒ်ပြောင်းရာတွင် နောက်ဆုံး = များကို ချန်သည်။ ထို = အက္ခရာများကြောင့် စာကြောင်း တိုနိုင်သည်။ ဘိုက် ၃ လုံး → အက္ခရာ ၄ လုံး ဖွဲ့စည်းပုံ မပြောင်းသောကြောင့် Base64URL သည် နေရာပိုသက်သာသော ဒွိပုံစံ မဟုတ်။
သေးသော ထည့်သွင်းမှုက ၃၃% ထက် ပိုကြီးနိုင်ရခြင်းမှာ အဘယ်ကြောင့်နည်း။
ဘိုက် ၁ → အက္ခရာ ၄ သည် အရှည် ၃၀၀% တိုးသည်။ ဘိုက် ၂ → ၄ သည် ၁၀၀%။ ဘိုက် ၃ → ၄ သည် ၃၃.၃% ခန့်။ n ကြီးလာသောအခါ ဖြည့်ခြင်း သက်ရောက်မှု နည်းလာပြီး အပိုအရွယ်အစားသည် ၃၃% ခန့်သို့ နီးကပ်သည်။ Base64 သည် အမြဲတမ်း အတိအကျ ၃၃% ပိုကြီးသည် မဟုတ်။
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 ဘယ်တော့မှ မသုံးရ» မဟုတ်။
JSON API တွေမှာ Base64 ဘာကြောင့် အသုံးများသလဲ။
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 အက္ခရာအရေအတွက် ဖြစ်သည်။
ဥပမာ: ဘိုက် ၁,၀၀၀ ဖိုင်က ဘယ်လောက် ကြီးမလဲ။
4 × ceil(1000 / 3)။ ceil(333.333…) = 334၊ ပြီး 4 × 334 = 1336။ ထို့ကြောင့် ဘိုက် ၁,၀၀၀ သည် Base64 အက္ခရာ ၁,၃၃၆ ဖြစ်လာသည်။ UTF-8/ASCII အဖြစ် သိမ်းပါက အက္ခရာတစ်လုံးသည် ပုံမှန်အားဖြင့် ၁ ဘိုက်—၁,၃၃၆ ကို မှတ်ဉာဏ်ထဲ အတိအကျ ဘိုက်အရေအတွက်အဖြစ် မယူပါနှင့်။
Base64 က ဖိုင်အရွယ်အစားထက် မှတ်ဉာဏ်ပိုသုံးနိုင်သလား။
အချို့ လည်ပတ်မှုပတ်ဝန်းကျင်များသည် စာကြောင်းများကို အက္ခရာတစ်လုံးလျှင် ၁ ဘိုက်ထက် ပိုသိမ်းပြီး ကုဒ်ပြောင်း/ကုဒ်ဖြည်ရာတွင် ကြားခံနှင့် စာကြောင်းကို အတူ ထားနိုင်သည်။ မှတ်ဉာဏ်အသုံးပြုမှုသည် အက္ခရာအရှည်နှင့် အတိအကျ မဟုတ်။
ရိုးရှင်းသော အရွယ်အစား ဆုံးဖြတ်လမ်းညွှန်
စနစ်က ရိုးရိုးဒွိ လက်ခံပါက အရွယ်အစားအတွက် ၎င်းကို ဦးစားပေးပါ။ စာသားသာ ခွင့်ပြုပါက Base64 ကိုက်နိုင်သည်။ ဝန်ကြီးပါက ဒွိတင်လမ်းကြောင်း ရှာပါ။ URL-ဘေးကင်း စာသားအတွက် Base64URL စဉ်းစားပါ—၃ မှ ၄ တိုးချဲ့မှု ရှိဆဲ။
- ဒွိဒေတာ ပို့ရန် လိုသည်
- ရိုးရိုးဒွိ ခွင့်ပြုသလား။ အရွယ်အစားအတွက် ဒွိကို ဦးစားပေးပါ
- စာသား-သီးသန့် ကွက်လား။ Base64 သင့်တော်နိုင်သည်
- ဝန်ကြီးလား။ ဒွိတင်လမ်းကြောင်း ရှာပါ
- URL-ဘေးကင်း စာသား လိုသလား။ Base64URL စဉ်းစားပါ
- ကြီးသော ထည့်သွင်းမှုတွင် စာသား ၃၃% ခန့် ပိုမည်ဟု မျှော်လင့်ပါ
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 က ဖိုင်အရွယ်အစား ဘာကြောင့် တိုးစေသလဲ။
ဘိုက် ၃ လုံး (၂၄ ဘစ်) ကို အက္ခရာ ၄ လုံး (၄ × ၆ ဘစ်) သို့ တိုက်ဆိုင်သည်။ စာသားအဖြစ် သိမ်းပါက ကြီးသော ထည့်သွင်းမှုတွင် သုံးပုံတစ်ပုံခန့် ပိုသည်။
Base64 က အမြဲ ၃၃% ပိုကြီးသလား။
မဟုတ်ပါ။ ကြီးသော ထည့်သွင်းမှုသည် ၃၃.၃% ခန့်သို့ နီးကပ်သည်။ သေးသော ထည့်သွင်းမှုသည် ဖြည့်ခြင်းကြောင့် ပိုကြီးနိုင်သည်။ 4 × ceil(n / 3) ကို သုံးပါ။
Base64 က ဒွိထက် ဘယ်လောက် ပိုကြီးသလဲ။
စံဖြည့်အရှည်သည် အက္ခရာ 4 × ceil(n / 3) ဖြစ်သည်။ Data URL ရှေ့ဆက်က ပိုထည့်သည်။
Base64 ချုံ့ခြင်းက ဖိုင်အရွယ်အစား လျှော့သလား။
Base64 မချုံ့ပါ။ ကုဒ်ပြောင်းစာသားပေါ် gzip သို့မဟုတ် Brotli က အချို့ကို ကျုံ့နိုင်သည်၊ အမှုတိုင်းတွင် အပိုအရွယ်အစားကို မဖျက်ပါ။
Base64URL က နေရာပိုနည်းသလား။
= ဖြည့်ခြင်းကို ချန်နိုင်သောကြောင့် စာကြောင်းသည် အက္ခရာ ၀–၂ လုံး တိုနိုင်သည်။ ၃-မှ-၄ ကုဒ်ပြောင်းဖွဲ့စည်းပုံ တူညီသည်။
ဖိုင်ကြီးများအတွက် Base64 သုံးသင့်သလား။
စာသားလိုမှသာ။ ကြီးသော သို့မဟုတ် မကြာခဏ ပို့ခြင်းတွင် ဒွိလမ်းကြောင်းက မကြာခဏ ပိုသေးသည်။ API များအတွက် Base64 အမြဲ မှားသည် မဟုတ်။