Base64 هي طريقة لتمثيل بيانات ثنائية عشوائية كنص يتكون فقط من الأحرف والأرقام والرموز + و/ و=. لا تضغط البيانات ولا تشفّرها — الناتج أكبر بحوالي الثلث، ويمكن لأي شخص يعرف الخوارزمية قراءة المحتوى الأصلي.
كيف يعمل الترميز
تُجمَّع البايتات المُدخلة في مجموعات من ثلاثة (24 بت) وتُقسَّم إلى أربع كتل من ستة بتات. تقابل كل كتلة حرفًا واحدًا من أبجدية Base64 (A–Z، a–z، 0–9، +، /). إذا لم يكن طول البيانات المُدخلة من مضاعفات ثلاثة بايتات، يُضاف رمز الحشو = في النهاية.
لماذا نحتاج ذلك
العديد من البروتوكولات والصيغ — البريد الإلكتروني (MIME)، عناوين URL، JSON، XML — مصممة للنصوص ولا تتعامل بشكل موثوق مع البايتات "الخام": البايتات الصفرية، أحرف التحكم، أو التسلسلات التي تتعارض مع صياغة الصيغة نفسها. يتجاوز Base64 هذا القيد بتحويل أي بيانات ثنائية إلى نص آمن.
حالات الاستخدام الشائعة
- مرفقات البريد الإلكتروني عبر MIME.
- إرسال الصور أو الملفات الصغيرة ضمن واجهة برمجة تطبيقات JSON.
- تخزين البيانات الثنائية في حقول نصية بقاعدة بيانات أو ملف إعدادات.
- ترميز جزأي header وpayload في رمز JWT.
ما لا يُعتبر Base64
ليس تشفيرًا ولا دالة تجزئة. يمكن لأي شخص فك ترميز نص Base64 والحصول على البيانات الأصلية دون مفتاح أو كلمة مرور — إنها مجرد صيغة تمثيل، وليست إجراءً أمنيًا.
الأبجدية القياسية والأبجدية الآمنة لعناوين URL
تستخدم أبجدية Base64 الكلاسيكية الرمزين + و/، وهما رمزان لهما معنى خاص داخل عناوين URL وأسماء الملفات. لهذه الحالات يوجد بديل يُسمى Base64URL، حيث يُستبدل + بـ-، ويُستبدل / بـ_. إذا أُدرجت نتيجة الترميز القياسي داخل عنوان URL دون percent-encoding إضافي، فقد يشوّه الرمزان + و/ العنوان أو يتعارضان مع فواصل المسار.
خطأ شائع: حشو مبتور أو «تالف»
الرمز = في نهاية السلسلة ليس زائدًا، بل هو جزء من الترميز يوضح عدد البايتات الناقصة في الكتلة الأخيرة. إذا نُسخت سلسلة Base64 بشكل غير كامل أو حُذف رمز الحشو يدويًا، فسيُرجع فك الترميز خطأ أو نتيجة مبتورة. بعض الأنظمة (مثل JWT) تتجاهل = عمدًا، وحينها يجب استعادة الطول قبل فك الترميز.