Base64 کو فوراً انکوڈ اور ڈی کوڈ کریں
Base64 کمپیوٹنگ کی دنیا میں ایک بنیادی طریقہ ہے جس سے بائنری ڈیٹا کو محفوظ طریقے سے متن کی صورت میں ظاہر کیا جاتا ہے۔ چاہے آپ APIs پر کام کر رہے ہوں، نیٹ ورک ریکویسٹس ڈی بگ کر رہے ہوں، JWT ٹوکنز سمجھنے کی کوشش کر رہے ہوں، یا HTML میں تصاویر شامل کر رہے ہوں، Base64 ہر جگہ نظر آتا ہے۔ یہ ٹول ایک کلک سے کسی بھی متن کو Base64 میں انکوڈ کر دیتا ہے اور کسی بھی Base64 اسٹرنگ کو واپس متن میں ڈی کوڈ کر دیتا ہے۔
Base64 دراصل ہے کیا
Base64 ایک بائنری-سے-متن انکوڈنگ اسکیم ہے جو بائنری ڈیٹا کو صرف 64 قابلِ چھپائی ASCII حروف کی مدد سے ظاہر کرتی ہے: 26 بڑے حروف (A-Z)، 26 چھوٹے حروف (a-z)، 10 ہندسے (0-9)، اور اس کے ساتھ + اور / کی علامتیں۔ ایک 65واں حرف، =، آخر میں خالی جگہ بھرنے (padding) کے لیے استعمال ہوتا ہے۔
"Base64" کا نام اسی حقیقت سے آیا ہے کہ یہ انکوڈنگ 64 مختلف حروف استعمال کرتی ہے۔ Base64 کا ہر حرف ڈیٹا کے 6 بٹس کی نمائندگی کرتا ہے (2 کی توانائی 6، یعنی 64)۔ چونکہ ایک بائٹ 8 بٹس کا ہوتا ہے، اس لیے ہر 3 بائٹس ان پٹ عین 4 Base64 حروف بن جاتے ہیں۔
Base64 کیوں وجود میں آیا
بہت سے پرانے متن پر مبنی پروٹوکول اور نظام صرف ASCII متن سنبھال سکتے ہیں، من مانا بائنری ڈیٹا نہیں۔ ای میل (SMTP)، URLs، HTTP ہیڈرز اور XML سب متن کو محفوظ طریقے سے سنبھالتے ہیں۔ بائنری ڈیٹا — جیسے تصاویر، آڈیو فائلیں، خفیہ کاری کی کنجیاں، یا کمپریسڈ ڈیٹا — ان راستوں سے بغیر انکوڈنگ کے محفوظ طریقے سے نہیں گزر سکتا۔
Base64 اس مسئلے کو یوں حل کرتا ہے کہ وہ کسی بھی بائنری ڈیٹا کو ASCII حروف کے ایک ذیلی مجموعے میں بدل دیتا ہے جسے تمام متنی نظام آسانی سے محفوظ کر سکیں اور منتقل کر سکیں۔
عام استعمال
ڈیٹا یو آر آئی (Data URIs): تصاویر کو براہِ راست HTML یا CSS میں شامل کیا جا سکتا ہے بغیر الگ فائل ریکویسٹ کیے۔ ایک ڈیٹا یو آر آئی data:image/png;base64 سے شروع ہو کر اس کے بعد Base64 میں انکوڈ کردہ تصویری ڈیٹا رکھتی ہے۔
ای میل اٹیچمنٹس (MIME): ای میل کے اٹیچمنٹس MIME پروٹوکول میں ترسیل کے لیے Base64 میں انکوڈ کیے جاتے ہیں۔
JSON APIs: JSON میں منتقل ہونے والا بائنری ڈیٹا (تصاویر، فائلیں، خفیہ کاری کے دستخط) لازماً Base64 میں انکوڈ ہونا چاہیے کیونکہ JSON صرف متن پر مبنی ہوتا ہے۔
HTTP بنیادی تصدیق: Authorization ہیڈر شناختی کوائف کو Base64(username:password) کی صورت بھیجتا ہے۔ یہ خود بخود محفوظ نہیں ہے — اس کے لیے اب بھی HTTPS درکار ہوتا ہے۔
JWT ٹوکنز: JSON Web Tokens تین Base64URL انکوڈ حصوں (ہیڈر، پے لوڈ، دستخط) پر مشتمل ہوتے ہیں جو نقطوں سے الگ کیے جاتے ہیں۔
ڈیٹابیس اسٹوریج: متن پر مبنی اسٹوریج فارمیٹس (جیسے کچھ NoSQL ڈیٹابیس یا کنفگ فائلیں) میں محفوظ بائنری بلابس اکثر Base64 میں انکوڈ ہوتے ہیں۔
Base64 بمقابلہ Base64URL
معیاری Base64، + اور / استعمال کرتا ہے جو URLs میں خاص معنی رکھتے ہیں۔ Base64URL ان کی جگہ - اور _ استعمال کرتا ہے تاکہ انکوڈ شدہ ڈیٹا URL کے لیے محفوظ ہو جائے۔ JWT ٹوکنز Base64URL استعمال کرتے ہیں، اور اکثر = والا padding بھی چھوڑ دیا جاتا ہے۔
سلامتی سے متعلق نوٹ
Base64 خفیہ کاری (encryption) نہیں ہے۔ کوئی بھی جو Base64 میں انکوڈ شدہ ڈیٹا وصول کرے، وہ اسے فوراً کسی بھی Base64 ڈی کوڈر کی مدد سے سمجھ سکتا ہے۔ حساس معلومات کو "چھپانے" کے لیے Base64 استعمال نہ کریں — اس کی بجائے مناسب خفیہ کاری استعمال کریں، جو حقیقی معنوں میں کسی کنجی کے بغیر پڑھے جانے سے روکنے کے لیے ریاضیاتی طور پر بنائی گئی ہے، جبکہ Base64 محض اسی ڈیٹا کی ایک قابلِ واپسی نئی صورت گری ہے۔
ٹول استعمال کرنے کا طریقہ
انکوڈ والے خانے میں متن پیسٹ کریں تاکہ فوراً اس کی Base64 صورت مل جائے، یا ڈی کوڈ والے خانے میں کوئی Base64 اسٹرنگ پیسٹ کریں تاکہ اصل متن واپس مل جائے، دونوں سمتیں آپ کے ٹائپ کرتے ہی زندہ تازہ ہوتی رہتی ہیں۔ یہ کسی JWT کے پے لوڈ کو فوراً جانچنے، کسی ڈیٹا یو آر آئی میں دراصل کیا موجود ہے یہ چیک کرنے، یا کسی ایسی قدر کو تیار کرنے کے لیے کارآمد ہے جسے URL پیرامیٹر یا JSON فیلڈ جیسے صرف متن والے راستے سے محفوظ طریقے سے گزرنا ہو۔
Base64 انکوڈنگ قدم بہ قدم کیسے کام کرتی ہے
Base64 بائنری ڈیٹا کو ایک سیدھے عمل کے ذریعے متن میں بدلتا ہے۔ پہلے بائنری ڈیٹا کو 3 بائٹس یعنی 24 بٹ کے ٹکڑوں میں تقسیم کیا جاتا ہے۔ ہر 24 بٹ ٹکڑے کو چار 6 بٹ گروپوں میں توڑا جاتا ہے۔ ہر 6 بٹ قدر، جو 0 سے 63 کے درمیان ہوتی ہے، Base64 حروفِ تہجی میں تلاش کی جاتی ہے، جہاں A=0، B=1، اسی طرح Z=25 تک، a=26 سے z=51 تک، 0=52 سے 9=61 تک، +=62 اور /=63۔ اگر ان پٹ عین 3 بائٹس کا مضاعف نہ ہو تو آخری گروپ مکمل کرنے کے لیے = والے padding حروف شامل کیے جاتے ہیں۔ چونکہ 3 بائٹس 4 Base64 حروف بن جاتے ہیں، انکوڈنگ ڈیٹا کا حجم تقریباً 33 فیصد بڑھا دیتی ہے — 1 میگابائٹ کی بائنری فائل Base64 میں انکوڈ ہو کر تقریباً 1.37 میگابائٹ متن بن جاتی ہے۔
ڈیٹا یو آر آئی اور اندرونی تصاویر
ویب پر Base64 کے سب سے نمایاں استعمالوں میں سے ایک ڈیٹا یو آر آئی ہے، جو کسی فائل کو الگ فائل کے بجائے براہِ راست HTML یا CSS میں شامل کرنے دیتی ہے، اس صورت میں: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...۔ اس سے اس وسیلے کے لیے ایک الگ HTTP ریکویسٹ کی ضرورت ختم ہو جاتی ہے، جو چھوٹے آئیکنز اور تصاویر کے لیے کارکردگی بہتر بنا سکتا ہے۔ تاہم Base64 ڈیٹا اس صفحے سے الگ کیش نہیں کیا جا سکتا جس میں یہ شامل ہو، اور تقریباً 33 فیصد اضافی حجم بڑی تصاویر کے لیے اسے غیرمؤثر بنا دیتا ہے، اسی لیے یہ عموماً صرف چھوٹے وسائل تک محدود رکھا جاتا ہے۔
JWT ٹوکنز اور Base64URL
JSON Web Tokens ایک مختلف قسم استعمال کرتے ہیں جسے Base64URL کہا جاتا ہے، جو + اور / علامتوں کی جگہ، جن کا URLs کے اندر خاص مطلب ہوتا ہے، بالترتیب - اور _ رکھ دیتی ہے، اور عموماً = والا padding مکمل طور پر چھوڑ دیتی ہے۔ ایک JWT تین نقطوں سے الگ حصوں پر مشتمل نظر آتا ہے — ہیڈر، پے لوڈ اور دستخط — ہر ایک Base64URL انکوڈ ڈیٹا کا ایک ٹکڑا، یہی وجہ ہے کہ JWT کو کسی اضافی ایسکیپنگ کے بغیر براہِ راست کسی URL یا HTTP ہیڈر میں محفوظ طریقے سے رکھا جا سکتا ہے۔
ای میل میں Base64
ای میل کا MIME معیار طے کرتا ہے کہ پیغام کے متن اور اٹیچمنٹس کو ترسیل کے لیے کیسے انکوڈ کیا جائے۔ متن پر مبنی مواد عموماً ایک الگ طریقہ استعمال کرتا ہے جسے quoted-printable انکوڈنگ کہتے ہیں، جبکہ بائنری اٹیچمنٹس Base64 استعمال کرتے ہیں۔ جب آپ کسی ای میل میں PDF منسلک کرتے ہیں، آپ کا ای میل کلائنٹ بھیجنے سے پہلے اسے Base64 میں انکوڈ کر دیتا ہے، اور وصول کنندہ کا کلائنٹ اسے خودبخود واپس اصل فائل میں ڈی کوڈ کر دیتا ہے، یہ سب دونوں افراد کی نظروں سے اوجھل ہو کر ہوتا ہے۔
نجی اور فوری
انکوڈنگ اور ڈی کوڈنگ آپ کے براؤزر کے اندر موجود btoa اور atob فنکشنز کی مدد سے مکمل طور پر چلتی ہے، اس لیے نتائج فوراً سامنے آتے ہیں اور آپ کا انکوڈ یا ڈی کوڈ کیا گیا کوئی بھی ڈیٹا کبھی کہیں نہیں بھیجا جاتا۔
Base64 FAQ
- What is Base64?
- Base64 is an encoding scheme that converts binary data into ASCII text using 64 characters (A-Z, a-z, 0-9, +, /). It is used to safely transmit binary data through text-only channels like email or JSON.
- Is Base64 encryption?
- No. Base64 is an encoding, not encryption. Anyone can decode a Base64 string instantly. Do not use it to hide sensitive data.
- What is Base64 used for?
- Embedding images in HTML/CSS (data URIs), encoding email attachments (MIME), storing binary data in JSON, transmitting credentials in HTTP Basic Authentication, and encoding binary data in URLs.