Tech Help
Base64 ফাইল বড় করে কেন?
Base64 সাধারণত বাইনারি তথ্যকে প্রায় এক তৃতীয়াংশ বড় করে। 3 বাইট থেকে 4 অক্ষরের গঠন, প্যাডিং, Data URL-এর বাড়তি খরচ এবং সেই আকার কখন কাজে লাগে দেখুন।
Base64 সাধারণত বাইনারি তথ্যকে প্রায় এক তৃতীয়াংশ বড় করে কারণ এটি প্রতি 3 বাইট বাইনারি তথ্যকে 4 মুদ্রণযোগ্য Base64 অক্ষরে দেখায়।
ইনপুট দৈর্ঘ্য 3-এর ঠিক গুণিতক না হলে মানক প্যাডেড Base64 = অক্ষর যোগ করতে পারে। এনকোডেড দৈর্ঘ্য 4 × ceil(n / 3), যেখানে n মূল বাইট দৈর্ঘ্য।
«প্রায় 33%» বড় ইনপুট বর্ণনা করে। খুব ছোট ইনপুটে প্যাডিংয়ে শতাংশ অনেক বড় দেখাতে পারে। Base64 সংকোচন নয়। এনকোডিং বনাম এনক্রিপশনের জন্য [Base64 এনক্রিপশন নয়: এটি আসলে কী করে](/bn/story/base64-is-not-encryption) দেখুন।
এই লেখা ব্যাখ্যা করে 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 দিলে কিছু পুনরাবৃত্তি ছোট হতে পারে—ফল তথ্য ও সংকোচকের ওপর নির্ভর করে। 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 অক্ষর গণনা।
উদাহরণ: 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 ব্যবহার করব?
শুধু পাঠ্য লাগলে। বড় বা ঘন ঘন স্থানান্তরে বাইনারি পথ প্রায়ই ছোট। API-তে Base64 সবসময় ভুল নয়।