Base64 এনকোড ও ডিকোড
টেক্সট বা ফাইলকে Base64-এ রূপান্তর করুন, অথবা Base64 ডিকোড করে পড়ার মতো টেক্সটে ফিরিয়ে আনুন। Unicode ঠিকভাবে সামলানো হয়, URL-safe বর্ণমালা এক ক্লিকেই পাওয়া যায়, আর ডিকোড করার সময় প্যাডিংসহ বা প্যাডিং ছাড়া দুই বর্ণমালাই গ্রহণ করা হয়।
০টি অক্ষর · ০টি শব্দ · ০টি লাইন
০টি অক্ষর · ০টি শব্দ · ০টি লাইন
সম্পূর্ণভাবে এই ব্রাউজার ট্যাবেই চলে। আপনার টেক্সট কখনও আপলোড বা সংরক্ষণ করা হয় না।
Base64 বর্ণমালা
RFC 4648 অনুযায়ী ইনডেক্স → অক্ষর। হাইলাইট করা শেষ দুটি URL-নিরাপদ রূপে আলাদা: ৬২ হলো + বা -, ৬৩ হলো / বা _।
- 0A
- 1B
- 2C
- 3D
- 4E
- 5F
- 6G
- 7H
- 8I
- 9J
- 10K
- 11L
- 12M
- 13N
- 14O
- 15P
- 16Q
- 17R
- 18S
- 19T
- 20U
- 21V
- 22W
- 23X
- 24Y
- 25Z
- 26a
- 27b
- 28c
- 29d
- 30e
- 31f
- 32g
- 33h
- 34i
- 35j
- 36k
- 37l
- 38m
- 39n
- 40o
- 41p
- 42q
- 43r
- 44s
- 45t
- 46u
- 47v
- 48w
- 49x
- 50y
- 51z
- 520
- 531
- 542
- 553
- 564
- 575
- 586
- 597
- 608
- 619
- 62+ -
- 63/ _
আউটপুট কত লম্বা হয়
প্রতি ৩ ইনপুট বাইট ৪টি অক্ষর হয়; শেষে ১ বা ২ বাইটের গ্রুপ স্ট্যান্ডার্ড Base64-এ = দিয়ে প্যাড হয়, URL-নিরাপদ রূপে প্যাড ছাড়াই থাকে।
| ইনপুট | বাইট | স্ট্যান্ডার্ড | URL-নিরাপদ | দৈর্ঘ্য |
|---|---|---|---|---|
U | 1 | VQ== | VQ | 4 |
Ul | 2 | VWw= | VWw | 4 |
Ult | 3 | VWx0 | VWx0 | 4 |
UltK | 4 | VWx0Sw== | VWx0Sw | 8 |
UltKi | 5 | VWx0S2k= | VWx0S2k | 8 |
UltKit | 6 | VWx0S2l0 | VWx0S2l0 | 8 |
Base64 কী কাজ করে
RFC 4648-এ সংজ্ঞায়িত Base64 যেকোনো বাইটকে ৬৪টি প্রিন্টযোগ্য ASCII অক্ষর দিয়ে লেখে: A–Z, a–z, 0–9, + এবং /। প্রতি তিন বাইট (24 বিট) ভেঙে চারটি 6-বিট সংখ্যা করা হয়, আর প্রতিটি সংখ্যা এই তালিকা থেকে একটি অক্ষর বেছে নেয়। ইনপুটের দৈর্ঘ্য তিনের গুণিতক না হলে শেষ গ্রুপে এক বা দুটি = চিহ্ন প্যাডিং হিসেবে বসে। ফলাফল সবসময় ইনপুটের চেয়ে প্রায় 33% বড় হয়: প্রতি 3 বাইটে 4টি অক্ষর।
এটি আছে কারণ অনেক মাধ্যম শুধু টেক্সটের জন্য তৈরি। ইমেল (MIME), HTML ও CSS-এর data: URL, ছবি বা সার্টিফিকেট বহনকারী JSON ফিল্ড এবং HTTP Basic authentication হেডার, সবই বাইনারি ডেটা নিরাপদে পাঠাতে Base64 ব্যবহার করে। এটি এনক্রিপশন নয় এবং কিছুই লুকায় না; ডিকোড করতে কোনো কী লাগে না।
Unicode ও URL-safe ভ্যারিয়েন্ট
Base64 অক্ষর নয়, বাইট এনকোড করে, তাই টেক্সটকে আগে বাইটে রূপান্তর করতে হয়। এই টুল সবসময় UTF-8 ব্যবহার করে, যেটি ওয়েবের প্রচলিত এনকোডিং: é হয় দুই বাইট আর একটি ইমোজি চার বাইট। ব্রাউজারের বিল্ট-ইন btoa ফাংশন U+00FF-এর ওপরের যেকোনো অক্ষরে ত্রুটি দেয়, তাই সাধারণ এনকোডার অ্যাকসেন্ট ও ইমোজিতে ব্যর্থ হয়; এখানে টেক্সট আগে TextEncoder দিয়ে যায়, আর ডিকোডিংয়ে TextDecoder উল্টো কাজ করে। ডিকোড করা বাইট বৈধ UTF-8 না হলে (যেমন ছবি বা zip ফাইল) টুল এলোমেলো টেক্সটের বদলে হেক্সাডেসিমাল দেখায়।
স্ট্যান্ডার্ড Base64 + ও / ব্যবহার করে, যেগুলোর URL ও ফাইলের নামে বিশেষ অর্থ আছে। RFC 4648-এর ৫ নম্বর সেকশনের URL-safe বর্ণমালা এগুলোর জায়গায় - ও _ বসায় এবং সাধারণত প্যাডিং বাদ দেয়। JSON Web Token ঠিক এই রূপ ব্যবহার করে। ডিকোডার দুই ধরনের বর্ণমালা এবং প্যাডিং ছাড়া ইনপুটও গ্রহণ করে, তাই যেকোনোটি পেস্ট করতে পারেন।
ফাইল ও ছবি এনকোড করা
একটি ফাইল বেছে নিন; টুল FileReader দিয়ে সেটি লোকালি পড়ে তার Base64 দেয়, অথবা ফাইলের MIME টাইপসহ পূর্ণ data: URL দেয়, যা সরাসরি img ট্যাগে বা CSS ব্যাকগ্রাউন্ডে পেস্ট করা যায়। ইনলাইন ছবি একটি HTTP রিকোয়েস্ট বাঁচায়, কিন্তু আকারে এক-তৃতীয়াংশ বাড়ে এবং আলাদাভাবে ক্যাশ করা যায় না, তাই ছোট আইকনের জন্য ভালো, ফটোর জন্য নয়। প্রিভিউ এবং তৈরি HTML ও CSS স্নিপেটসহ ছবির জন্য Image to Base64 ব্যবহার করুন।
সচরাচর জিজ্ঞাসা
- Base64 আউটপুট আমার ইনপুটের চেয়ে লম্বা কেন?
- প্রতি 3 বাইট 4টি অক্ষর হয়, তাই আউটপুট ইনপুটের প্রায় 4/3 গুণ বড় হয়, সঙ্গে সর্বোচ্চ দুটি প্যাডিং অক্ষর। নন-ASCII টেক্সট আরও লম্বা হয়, কারণ UTF-8 প্রতি অক্ষরে দুই থেকে চার বাইট ব্যবহার করে।
- শেষে = চিহ্নগুলো কী?
- এগুলো প্যাডিং। ইনপুটের দৈর্ঘ্য তিনের গুণিতক না হলে এগুলো আউটপুটের দৈর্ঘ্যকে চারের গুণিতক করে। একটি = মানে শেষ গ্রুপে দুই বাইট ছিল, দুটি = মানে এক বাইট ছিল।
- ডিকোড করার সময় invalid character ত্রুটি দেখায় কেন?
- ইনপুটে বর্ণমালার বাইরের কিছু আছে, যেমন শব্দের মাঝে স্পেস, কোটেশন চিহ্ন, বা URL এনকোডিং থেকে আসা %। লাইন ব্রেক ও প্যাডিং না থাকা মেনে নেওয়া হয়; অন্য অক্ষর নয়।
- পাসওয়ার্ড Base64-এ এনকোড করা কি নিরাপদ?
- Base64 কোনো সুরক্ষা দেয় না। HTTP Basic authentication user:password Base64-এ পাঠায়, তাই এটি শুধু HTTPS-এ ব্যবহার করা উচিত। গোপন তথ্য রক্ষায় প্রকৃত এনক্রিপশন বা হ্যাশিং ব্যবহার করুন।
- Base64 আর Base64url-এর মধ্যে পার্থক্য কী?
- শুধু দুটি অক্ষর আর প্যাডিং: Base64url + ও / এর বদলে - ও _ ব্যবহার করে এবং সাধারণত = বাদ দেয়, ফলে ফলাফল এস্কেপ ছাড়াই URL ও ফাইলের নামে বসানো যায়।