شفّر وفكّ تشفير Base64 في اللحظة نفسها
Base64 نظام ترميز أساسي مستخدم في شتّى مجالات الحوسبة لتمثيل بيانات ثنائية بأمان في هيئة نصّية. سواء كنت تتعامل مع واجهات برمجة تطبيقات، أو تُصلح خللاً في طلبات شبكية، أو تحاول فهم رموز JWT، أو تُضمِّن صوراً داخل صفحة HTML، ستجد Base64 حاضراً باستمرار. تشفّر هذه الأداة أي نص إلى Base64 وتفكّ تشفير أي سلسلة Base64 وتعيدها نصاً عادياً بضغطة واحدة.
ما هو Base64؟
Base64 مخطط ترميز من الثنائي إلى النص يمثّل البيانات الثنائية باستخدام 64 حرف ASCII قابلاً للطباعة فقط: الحروف الكبيرة السّت والعشرون (A-Z)، والحروف الصغيرة السّت والعشرون (a-z)، والأرقام العشرة (0-9)، إضافة إلى الرمزين + و/. ويُستخدَم حرف خامس وستّون، وهو =، للحشو عند الحاجة.
جاء اسم «Base64» من أن الترميز يستخدم 64 رمزاً مميّزاً. يمثّل كل رمز Base64 ست بتّات من البيانات (2 أُس 6 يساوي 64). ولأن البايت الواحد ثمانية بتّات، فإن كل ثلاثة بايتات من المُدخَل تتحوّل إلى أربعة رموز Base64 بالضبط.
لماذا وُجد Base64 أصلاً
كثير من البروتوكولات والأنظمة النصية القديمة لا تتعامل إلا مع نص ASCII، لا مع بايتات ثنائية عشوائية. البريد الإلكتروني (SMTP)، وعناوين الويب، وترويسات HTTP، وXML، جميعها تتعامل مع النص بأمان. أما البيانات الثنائية — كالصور والملفات الصوتية والمفاتيح التشفيرية أو البيانات المضغوطة — فلا يمكن نقلها بأمان عبر هذه القنوات من دون ترميز.
يحلّ Base64 هذه المشكلة بتحويل أي بيانات ثنائية إلى مجموعة فرعية من رموز ASCII يمكن لكل الأنظمة النصية تخزينها ونقلها بأمان.
استخدامات شائعة
عناوين البيانات (Data URIs): يمكن تضمين الصور مباشرة داخل HTML أو CSS من دون طلب ملف منفصل. يبدأ عنوان البيانات بـ data:image/png;base64، متبوعاً ببيانات الصورة المشفَّرة بـ Base64.
مرفقات البريد الإلكتروني (MIME): تُشفَّر مرفقات البريد الإلكتروني بـ Base64 لنقلها عبر بروتوكول MIME.
واجهات JSON البرمجية: يجب ترميز أي بيانات ثنائية (صور، ملفات، توقيعات تشفيرية) تُنقَل داخل JSON بـ Base64 لأن JSON نصّي بحت.
مصادقة HTTP الأساسية: يُرسِل ترويسة Authorization بيانات الاعتماد مشفّرة كـ Base64(اسم المستخدم:كلمة المرور). هذا ليس آمناً بحدّ ذاته — لا يزال HTTPS ضرورياً.
رموز JWT: تتكوّن رموز JSON Web Token من ثلاثة أقسام مشفّرة بـ Base64URL (الترويسة، الحمولة، التوقيع) يفصل بينها نقاط.
التخزين في قواعد البيانات: غالباً ما تُشفَّر الكتل الثنائية المخزَّنة في صيغ تخزين نصية (كبعض قواعد بيانات NoSQL أو ملفات الإعداد) بـ Base64.
Base64 مقابل Base64URL
يستخدم Base64 القياسي الرمزين + و/، وهما رمزان لهما معنى خاص داخل عناوين الويب. يستبدل Base64URL هذين الرمزين بـ - و_ ليصبح المحتوى المشفَّر آمناً للاستخدام داخل العناوين. تستخدم رموز JWT صيغة Base64URL، وغالباً ما يُحذَف حرف الحشو = فيها تماماً.
ملاحظة أمنية مهمة
Base64 ليس تشفيراً. أي شخص يستلم بيانات مشفّرة بـ Base64 يستطيع فكّ تشفيرها فوراً باستخدام أي أداة فكّ تشفير Base64 متاحة. لا تستخدم Base64 لـ«إخفاء» معلومات حساسة — استخدم تشفيراً حقيقياً بدلاً من ذلك.
كيفية استخدام الأداة
الصق نصاً في حقل التشفير لترى تمثيله بـ Base64 فوراً، أو الصق سلسلة Base64 في حقل فكّ التشفير لاسترجاع النص الأصلي، ويتحدّث كلا الاتجاهين حيّاً مع الكتابة. هذا مفيد لفحص حمولة رمز JWT بسرعة، أو التحقّق من محتوى عنوان بيانات فعلياً، أو تحضير قيمة يجب أن تنتقل بأمان عبر قناة نصية بحتة كمعامل عنوان ويب أو حقل JSON.
كيف يعمل ترميز Base64 خطوة بخطوة
يحوّل Base64 البيانات الثنائية إلى نص عبر عملية مباشرة. أولاً، تُجمَّع البيانات الثنائية في كتل من ثلاثة بايتات، أي 24 بتّاً. تُقسَّم كل كتلة 24 بتّية إلى أربع مجموعات من ست بتّات. يُبحَث عن كل قيمة ست بتّية، تتراوح بين 0 و63، في أبجدية Base64، حيث A=0 وB=1 وهكذا حتى Z=25، وa=26 حتى z=51، و0=52 حتى 9=61، و+=62 و/=63. وإذا لم يكن المُدخَل مضاعفاً تاماً لثلاثة بايتات، تُضاف رموز حشو = في النهاية لإكمال المجموعة الأخيرة. ولأن كل ثلاثة بايتات تتحوّل إلى أربعة رموز Base64، يزيد الترميز حجم البيانات بنحو 33 بالمئة — فملف ثنائي حجمه 1 ميغابايت يصبح بعد الترميز بـ Base64 نحو 1.37 ميغابايت من النص.
عناوين البيانات والصور المضمَّنة
من أبرز استخدامات Base64 على الويب عنوان البيانات، الذي يتيح تضمين ملف مباشرة داخل HTML أو CSS بدل الإشارة إليه كملف منفصل، بصيغة شبيهة بـ data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA.... هذا يلغي طلب HTTP منفصلاً للمورد، ما قد يحسّن الأداء للأيقونات والصور الصغيرة. لكن بيانات Base64 لا يمكن تخزينها مؤقتاً بشكل مستقل عن الصفحة المضمَّنة فيها، والزيادة في الحجم بنحو 33 بالمئة تجعل هذا الأسلوب غير كفؤ للصور الكبيرة، ولهذا يُحفَظ عادة للأصول الصغيرة فقط.
رموز JWT وBase64URL
تستخدم رموز JSON Web Token صيغة تسمّى Base64URL، تستبدل الرمزين + و/، اللذين لهما معنى خاص داخل عناوين الويب، بـ - و_ على التوالي، وتحذف عادةً حرف الحشو = تماماً. يبدو رمز JWT كثلاثة أقسام مفصولة بنقاط — ترويسة وحمولة وتوقيع — كل قسم منها كتلة بيانات مشفّرة بـ Base64URL، ولهذا يمكن وضع رمز JWT مباشرة داخل عنوان ويب أو ترويسة HTTP من دون أي تهريب إضافي للرموز.
Base64 في البريد الإلكتروني
يحدّد معيار MIME للبريد الإلكتروني كيفية ترميز نصوص الرسائل ومرفقاتها للنقل. يستخدم المحتوى النصي عادةً مخططاً مختلفاً يسمّى الترميز القابل للاقتباس، بينما تستخدم المرفقات الثنائية 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.