0Pricing
Cryptology Academy · درس

ترميز Base64: كيف يعمل

اكتشف أسرار Base64، وهو نظام الترميز المستخدم في رسائل البريد الإلكتروني وJWTs ونقل البيانات

ترميز Base64: كيف يعمل درس مجاني في Cryptology Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cryptology Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cryptology Academy 4 دروس في المجموع.

لماذا يحتاج النظام الثنائي إلى تمثيل نصي

صُمِّمت العديد من الأنظمة، بما فيها البريد الإلكتروني وترويسات HTTP وXML، للتعامل مع النصوص لا مع البيانات الثنائية العشوائية. وقد تتسبب قيمة بايت مقدارها 0x00 (null) أو 0x1A (حرف تحكم) في فشل التحليل أو تلف البيانات.

يحوّل ترميز Base64 البيانات الثنائية العشوائية إلى مجموعة فرعية من محارف ASCII الآمنة للأنظمة النصية فقط، مما يتيح تضمين محتوى ثنائي مثل الصور والشهادات في بروتوكولات قائمة على النصوص.

التجميع إلى مجموعات من 6 بت من بايتات 8 بت

يعمل Base64 بأخذ ثلاثة بايتات من 8 بت، أي 24 بت إجمالًا، وتقسيمها إلى أربع مجموعات من 6 بت. وتمثل كل مجموعة من 6 بت قيمة من 0 إلى 63، تُطابَق مع محرف واحد في أبجدية Base64.

تعني هذه النسبة، 3 إلى 4، أن كل 3 بايتات من الإدخال تنتج 4 محارف من الإخراج، أي زيادة بنسبة 33% في الحجم. وتكون العملية الحسابية متوازنة لأن 3 بايتات = 24 بت = 4 مجموعات من 6 بت.

أبجدية Base64

تتكون أبجدية Base64 من 64 محرفًا: الأحرف الكبيرة A-Z (الفهارس 0-25)، والأحرف الصغيرة a-z (الفهارس 26-51)، والأرقام 0-9 (الفهارس 52-61)، والرمز + (الفهرس 62)، والشرطة المائلة / (الفهرس 63).

تتجنب هذه الأبجدية جميع محارف التحكم ومعظم علامات الترقيم التي قد تسبب مشكلات في الأنظمة النصية. وكل محرف في ناتج Base64 هو محرف ASCII قابل للطباعة وآمن للاستخدام في أي بروتوكول نصي تقريبًا.

الحشو بعلامات =

عندما لا يكون طول الإدخال من مضاعفات 3 بايتات، يلزم استخدام الحشو. فإذا تبقى بايت واحد، يُحشى ليكوّن مجموعة من 12 بت تنتج محرفَي Base64 يتبعهما "==". وإذا تبقى بايتان، فإنهما ينتجان 3 محارف Base64 يتبعها "=".

علامات الحشو = ليست بيانات مُرمَّزة؛ بل تُخبر وحدة فك الترميز بأن الكتلة الأخيرة أقصر من 3 بايتات. وهي تضمن أن يكون طول الإخراج دائمًا من مضاعفات 4 محارف.

مثال على الترميز: Man

قيم ASCII للكلمة "Man" هي M=77 (01001101)، وa=97 (01100001)، وn=110 (01101110). وبعد وصلها: 010011010110000101101110.

تُقسّم إلى مجموعات من 6 بت: 010011 | 010110 | 000101 | 101110 = 19 | 22 | 5 | 46. وبالرجوع إلى أبجدية Base64: 19=T، و22=W، و5=F، و46=u. تُرمَّز "Man" إلى "TWFu".

صيغة Base64url البديلة

يستخدم Base64 القياسي الرمزين + و/، ولهما معانٍ خاصة في عناوين URL وأسماء الملفات. أما Base64url فهو صيغة بديلة تستبدل + بـ - و/ بـ _، مما يجعلها آمنة للاستخدام في عناوين URL وأسماء الملفات وقيم ملفات تعريف الارتباط.

تستخدم JWTs (JSON Web Tokens) ترميز Base64url لقسمي الترويسة والحمولة. وتستند معايير JOSE (JSON Object Signing and Encryption) بالكامل إلى Base64url.

مواضع استخدام Base64

يُستخدم Base64 في مرفقات البريد الإلكتروني بتنسيق MIME، لترميز الملفات الثنائية في البريد الإلكتروني القائم على النصوص، وفي رموز JWT لترميز ترويسة JSON والحمولة، وفي معرّفات البيانات داخل HTML لتضمين الصور مباشرةً في CSS أو HTML، وفي تنسيق PEM لشهادات X.509.

يغلّف تنسيق PEM (Privacy Enhanced Mail) الشهادات الثنائية المُرمَّزة بتنسيق DER داخل Base64 بين الترويسيتين "-----BEGIN CERTIFICATE-----" و"-----END CERTIFICATE-----".

لا يوفّر Base64 أي أمان

Base64 ليس تشفيرًا، بل هو ترميز قابل للعكس ولا يحتاج إلى مفتاح. ويمكن لأي شخص يرى بيانات مُرمَّزة باستخدام Base64 فك ترميزها فورًا باستخدام أدوات متاحة مجانًا أو بسطر واحد في أي لغة برمجة.

من الأخطاء الشائعة الاعتقاد بأن كلمات المرور أو الرموز المُرمَّزة باستخدام Base64 تكون "مخفية". لكنها ليست كذلك. فإذا كان بإمكانك فك ترميزها، فبإمكان المهاجم فعل ذلك أيضًا. يتطلب الأمان التشفير، لا الترميز.

فك الترميز أمر بسيط

فك ترميز Base64 سهل بقدر سهولة ترميزه. إذ تُعاد مطابقة كل مجموعة من 4 محارف Base64 مع قيمها ذات 6 بت، ثم تُوصل هذه القيم وتُقسّم إلى بايتات. ويشير الحشو = إلى عدد البايتات التي تمثلها المجموعة الأخيرة.

في Python: import base64; base64.b64decode("TWFu") returns b"Man". العملية حتمية وغير فاقدة للبيانات، ولا تتطلب مفتاحًا أو سرًا.

الحجم الإضافي والكفاءة في Base64

تعني الزيادة في الحجم بنسبة 33% التي يسببها Base64، أي 4 بايتات من الإخراج لكل 3 بايتات من الإدخال، إضافةً إلى الأسطر الجديدة كل 76 محرفًا كما يتطلب MIME، أن Base64 غير فعّال لنقل البيانات الثنائية الكبيرة.

تستطيع البروتوكولات الثنائية الحديثة، مثل HTTP/2 الذي يستخدم تأطيرًا ثنائيًا وWebSockets التي تستخدم إطارات ثنائية، التعامل مع البايتات الخام مباشرةً، مما يلغي الحاجة إلى Base64 في السياقات عالية الأداء.

Base32 وBase58: مخططات ترميز أخرى

يستخدم Base32 أبجدية مكونة من 32 محرفًا (A-Z و2-7)، وينتج مخرجات أطول من Base64، لكنه غير حساس لحالة الأحرف ومناسب للاستخدام في السياقات التي قد تُفقد فيها حالة الأحرف. وغالبًا ما تُرمَّز الأسرار المشتركة لـ TOTP باستخدام Base32.

يزيل Base58، المستخدم في عناوين محافظ Bitcoin، المحارف المتشابهة بصريًا مثل 0 وO وI وl. ويقلل ذلك من أخطاء النسخ عند نقل العناوين. والمقابل هو أن Base58 ليس قوة للعدد 2، مما يجعل الترميز أكثر تعقيدًا قليلًا.

اختبار أبجدية Base64

اختبر معرفتك بترميز Base64.

أهم النقاط: ترميز Base64

يحوّل Base64 البيانات الثنائية إلى نص من خلال تجميع البتات في مجموعات من 6 بت ومطابقتها مع أبجدية مكونة من 64 محرفًا. وينتج زيادة في الحجم بنسبة 33%، ويستخدم الحشو = عندما لا يكون عدد البايتات من مضاعفات 3.

لا يوفّر Base64 أي أمان؛ فهو يُستخدم للتوافق أثناء النقل، لا للحفاظ على السرية. أما Base64url (-/_) فهو الصيغة الآمنة لعناوين URL والمستخدمة في JWTs. ولا يتطلب فك الترميز مفتاحًا، ويستغرق أجزاءً من الثانية.

الأسئلة الشائعة

هل درس «ترميز Base64: كيف يعمل» مجاني؟

نعم — نص درس «ترميز Base64: كيف يعمل» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cryptology Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Cryptology Academy 4 دروس في المجموع.

ماذا ستتعلم في «ترميز Base64: كيف يعمل»؟

اكتشف أسرار Base64، وهو نظام الترميز المستخدم في رسائل البريد الإلكتروني وJWTs ونقل البيانات تتمرن على Cryptology Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Cryptology Academy؟

لا تُشترط خبرة سابقة. Cryptology Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «ترميز Base64: كيف يعمل»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Cryptology Academy هذا؟

نعم. كل درس في Cryptology Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. ترميز Base64: كيف يعمل
  2. ASCII وUnicode وتمثيل النصوص
  3. النظام الست عشري في مخرجات التشفير
  4. الترميز مقابل التشفير مقابل التجزئة
← العودة إلى Cryptology Academy