🔐
← العودة للأدلة

ما هو Base64؟ دليل شامل للمبتدئين

· وسوم: base64, encoding, binary-to-text, web-development, data-transfer

ما هو ترميز Base64؟

Base64 هو نظام ترميز من ثنائي إلى نصي يمثل البيانات الثنائية بتنسيق سلسلة ASCII باستخدام أبجدية مكونة من 64 حرفًا. تم تصميمه في الأصل لمرفقات البريد الإلكتروني عبر MIME (امتدادات بريد الإنترنت متعددة الأغراض) ولا يزال أحد أكثر طرق الترميز استخدامًا على الويب.

عندما تحتاج إلى إرسال بيانات ثنائية — مثل صورة أو ملف أو بايتات مضغوطة — عبر قناة صُممت للنصوص، فإن Base64 هو الحل الأمثل. يأخذ بايتات عشوائية ويحولها إلى سلسلة آمنة ومحمولة من الأحرف والأرقام وبعض الأحرف الخاصة.

كيف يعمل Base64؟

يعمل Base64 عن طريق معالجة البيانات الثنائية في مجموعات من ثلاث بايتات (24 بت) وتحويل كل مجموعة إلى أربعة أحرف Base64. يأتي اسم "Base64" من حقيقة أن أبجدية الترميز تستخدم 64 حرفًا مختلفًا: A-Z و a-z و 0-9 و + و /.

خوارزمية الترميز خطوة بخطوة

  1. خذ 3 بايتات (24 بت) من البيانات المدخلة
  2. قسّمها إلى أربع مجموعات كل منها 6 بت
  3. قم بتعيين كل قيمة 6 بت (0-63) إلى جدول أبجدية Base64
  4. أضف الحشو (=) إذا كان طول المدخلات غير قابل للقسمة على 3

إليك مثال ملموس. السلسلة "Man" تُرمَّز كما يلي:

  • M (ASCII 77) = 01001101
  • a (ASCII 97) = 01100001
  • n (ASCII 110) = 01101110

مجمعة: 01001101 01100001 01101110 → مقسمة إلى مجموعات 6 بت:

  • 010011 = 19 → T
  • 010110 = 22 → W
  • 000101 = 5 → F
  • 101110 = 46 → u

إذن "Man" تصبح "TWFu".

ماذا عن الحشو؟

إذا لم يكن طول المدخلات مضاعفًا لـ 3 بايتات، يضيف Base64 أحرف حشو (=) لجعل الناتج مضاعفًا لـ 4 أحرف:

  • 1 بايت من المدخلات → 2 حرف Base64 + 2 حرف حشو (==)
  • 2 بايت من المدخلات → 3 أحرف Base64 + 1 حرف حشو (=)

على سبيل المثال، البايت الواحد المقابل لـ "M" يُرمَّز إلى TQ==.

جدول أبجدية Base64

| القيمة | الحرف | القيمة | الحرف | القيمة | الحرف | القيمة | الحرف | |-------|------|-------|------|-------|------|-------|------| | 0 | A | 16 | Q | 32 | g | 48 | w | | 1 | B | 17 | R | 33 | h | 49 | x | | 2 | C | 18 | S | 34 | i | 50 | y | | 3 | D | 19 | T | 35 | j | 51 | z | | 4 | E | 20 | U | 36 | k | 52 | 0 | | 5 | F | 21 | V | 37 | l | 53 | 1 | | 6 | G | 22 | W | 38 | m | 54 | 2 | | 7 | H | 23 | X | 39 | n | 55 | 3 | | 8 | I | 24 | Y | 40 | o | 56 | 4 | | 9 | J | 25 | Z | 41 | p | 57 | 5 | | 10 | K | 26 | a | 42 | q | 58 | 6 | | 11 | L | 27 | b | 43 | r | 59 | 7 | | 12 | M | 28 | c | 44 | s | 60 | 8 | | 13 | N | 29 | d | 45 | t | 61 | 9 | | 14 | O | 30 | e | 46 | u | 62 | + | | 15 | P | 31 | f | 47 | v | 63 | / |

حالات الاستخدام الشائعة لترميز Base64

مرفقات البريد الإلكتروني (MIME)

تم إنشاء Base64 لـ MIME (امتدادات بريد الإنترنت متعددة الأغراض). صُممت بروتوكولات البريد الإلكتروني مثل SMTP لنصوص ASCII ذات 7 بت، لذا يجب ترميز المرفقات الثنائية مثل PDF والصور وملفات ZIP كـ Base64 قبل إرسالها عبر البريد الإلكتروني.

عناوين URL البيانات في HTML و CSS

يتيح Base64 تضمين الصور والخطوط والوسائط الأخرى مباشرة في ملفات HTML أو CSS باستخدام عناوين URL البيانات:

<img src="data:image/png;base64,iVBORw0KGgo..." alt="Embedded Image" />

هذا يلغي طلب HTTP إضافي، مما قد يكون مفيدًا للأصول الصغيرة.

رموز JSON Web Tokens (JWT)

تستخدم JWTs المتغير الآمن لعناوين URL من Base64 (Base64url) لترميز الرأس والحمولة والتوقيع لكل رمز. لهذا السبب ترى سلاسل مثل eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 في أنظمة المصادقة.

تخزين البيانات الثنائية في قواعد البيانات

العديد من قواعد البيانات مُحسَّنة لتخزين النصوص وقد لا تتعامل مع البايتات الخام بشكل جيد. يتيح ترميز البيانات الثنائية كـ Base64 تخزين الصور أو الكائنات المتسلسلة أو البيانات المشفرة في أعمدة نصية.

حمولات API

عند إرسال بيانات ثنائية عبر REST أو GraphQL API — خاصة بتنسيق JSON — فإن Base64 هو الخيار القياسي لأن JSON لا يمكنه تمثيل البايتات الخام بشكل أصلي.

هل يزيد Base64 حجم الملف؟

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

هل Base64 تشفير؟

لا. هذا مفهوم خاطئ شائع. Base64 هو نظام ترميز، وليس تشفيرًا. يمكن لأي شخص يتلقى سلسلة Base64 فك ترميزها وإعادتها إلى البيانات الأصلية دون الحاجة إلى أي مفتاح. إنه لا يوفر أي أمان أو سرية على الإطلاق. إذا كنت بحاجة إلى حماية البيانات، استخدم التشفير (مثل AES) ثم يمكنك اختياريًا ترميز البايتات المشفرة بـ Base64 للنقل.

Base64 مقارنة بترميزات أخرى من ثنائي إلى نصي

| الترميز | حجم الأبجدية | الحمل الإضافي | الأنسب لـ | |----------|--------------|----------|----------| | Base64 | 64 حرفًا | ~33% | نقل البيانات والتضمين | | Base32 | 32 حرفًا | ~60% | السياقات المقروءة بشريًا وغير الحساسة لحالة الأحرف | | Base16 (Hex) | 16 حرفًا | 100% | التصحيح وتفريغ الذاكرة ورموز الألوان | | Ascii85 | 85 حرفًا | ~25% | Adobe PostScript وتدفقات PDF |

يقدم Base64 مقايضة متوازنة بين كفاءة المساحة والتوافق الواسع، مما يجعله الترميز من ثنائي إلى نصي الأكثر شيوعًا على الويب.

جرّب ترميز Base64 عبر الإنترنت

هل أنت مستعد لترميز بياناتك الخاصة؟ استخدم أداة ترميز وفك ترميز Base64 المجانية عبر الإنترنت لتحويل النصوص أو الملفات فورًا في متصفحك. لا حاجة للتثبيت أو التسجيل.