ترميز Base64 في جملة واحدة
يُعد Base64 ترميزًا لتحويل البيانات الثنائية إلى نص، وهو معرّف في المعيار RFC 4648، ويمثّل كل 3 بايتات من البيانات بـ 4 أحرف من الأبجدية A–Z وa–z و0–9 و+ و/.
لماذا وُجد Base64
صُممت أنظمة كثيرة للتعامل مع النصوص فقط: البريد الإلكتروني (SMTP)، وJSON، وXML، وسمات HTML، وعناوين URL، والطرفيات. وقد تحتوي البيانات الثنائية الخام، مثل الصور أو ملفات PDF، على بايتات قد تغيّرها هذه الأنظمة أو ترفضها. لذلك يحوّل Base64 البيانات إلى أحرف آمنة وقابلة للطباعة كي تصل إلى وجهتها دون أي تغيير.
كيف يعمل ترميز Base64 خطوة بخطوة
- خذ بايتات الإدخال:
Mوaوn= 77، 97، 110. - اكتبها في صورة 24 بتًا:
01001101 01100001 01101110. - قسّم البتات إلى أربع مجموعات من 6 بتات:
010011 010110 000101 101110= 19، 22، 5، 46. - ابحث عن كل رقم في الأبجدية: 19 =
T، 22 =W، 5 =F، 46 =u.
وهكذا تصبح Man هي TWFu. أما فك الترميز فيعكس هذه الخطوات ببساطة.
أبجدية Base64
| القيم | الأحرف |
|---|---|
| 0–25 | A–Z |
| 26–51 | a–z |
| 52–61 | 0–9 |
| 62 | + (في الصيغة الآمنة لعناوين URL: -) |
| 63 | / (في الصيغة الآمنة لعناوين URL: _) |
| الحشو | = |
ماذا تعني علامة الحشو =
عندما لا يكون طول المُدخل من مضاعفات العدد 3، تُكمَّل المجموعة الأخيرة وتُعلَّم بالعلامة =: فتصبح Ma هي TWE=، وتصبح M هي TQ==. ولا يظهر الحشو أبدًا في منتصف سلسلة صالحة.
أنواع Base64
- Base64 القياسي (RFC 4648) – الأبجدية الموضحة أعلاه مع حشو
=. - Base64URL – يستخدم
-و_، وغالبًا دون حشو؛ ويُستخدم في عناوين URL وأسماء الملفات ورموز JWT. - MIME Base64 – الأبجدية القياسية مع فاصل أسطر كل 76 حرفًا، ويُستخدم في البريد الإلكتروني.
ترميز Base64 ليس تشفيرًا
لا يُخفي Base64 أي شيء: يمكن لأي شخص فك ترميزه فورًا. وكثيرًا ما يُظن خطأً أنه وسيلة حماية لأن ناتجه يبدو عشوائيًا. استخدم تشفيرًا حقيقيًا مثل AES لحماية الأسرار، واستخدم Base64 فقط لنقل البايتات المشفّرة في صورة نص.
الزيادة في الحجم
يبلغ طول الناتج المرمّز 4 × ⌈n / 3⌉ حرفًا لكل n بايت، أي أكثر من الحجم الأصلي بنحو 33%. ومع فواصل أسطر MIME يزداد الحجم بنسبة 2–3% أخرى.
أين يُستخدم Base64
- مرفقات البريد الإلكتروني (MIME)
- روابط Data URI للصور والخطوط في HTML وCSS
- الحقول الثنائية في واجهات API المعتمدة على JSON وXML
- رموز JSON Web Token وOAuth
- ترويسات مصادقة HTTP Basic
- شهادات PEM ومفاتيح SSH
- أسرار Kubernetes (Secrets) وملفات الإعداد
الأسئلة الشائعة
هل Base64 هو نفسه التشفير أو التجزئة (hashing)؟
لا. يحتاج التشفير إلى مفتاح لعكسه، والتجزئة لا يمكن عكسها إطلاقًا، بينما يستطيع أي شخص فك ترميز Base64.
لماذا سُمّي Base64 بهذا الاسم؟
لأنه يستخدم أبجدية من 64 حرفًا، بحيث يحمل كل حرف 6 بتات من المعلومات (26 = 64).
كيف أعرف ما إذا كانت السلسلة بترميز Base64؟
تحتوي فقط على الأحرف A–Z و a–z والأرقام 0–9 والرمزين + و / (أو - و _)، ويكون طولها عادةً من مضاعفات العدد 4، وقد تنتهي بعلامة = واحدة أو اثنتين. وأسرع طريقة للتحقق هي لصقها في أداة فك الترميز لدينا.
آخر تحديث: