
Base64 هو مخطط ترميز ثنائي-إلى-نصي يمثّل البيانات الثنائية باستخدام 64 حرفاً ASCII قابلاً للطباعة فقط: A–Z وa–z و0–9 والرمزين + و/، مع استخدام = للحشو. الهدف هو نقل البيانات الثنائية بأمان عبر أنظمة صُمّمت للتعامل مع النصوص — بروتوكولات البريد الإلكتروني والروابط وحمولات JSON وسمات HTML.
من المهم أن تفهم أن Base64 ليس تشفيراً. لا يوفر أي أمان على الإطلاق. يمكن لأي شخص يرى بيانات مشفّرة بـBase64 فكّها فوراً. غرضه الترميز للنقل الآمن، لا الإخفاء.
تأخذ الخوارزمية كل 3 بايت (24 بت) من المدخل وتقسّمها إلى أربع مجموعات من 6 بتات. كل مجموعة من 6 بتات تُعيَّن لأحد الـ64 حرفاً في أبجدية Base64. بما أن 3 بايت مدخلة تصبح 4 أحرف مخرجة، يزيد ترميز Base64 حجم البيانات بنحو 33%.
إذا لم يكن طول المدخل قابلاً للقسمة على 3، تُضاف أحرف الحشو (= أو ==) إلى المخرج لجعل الطول الكلي مضاعفاً للعدد 4. يتيح ذلك لوحدات فك الشفرة التعرف بشكل صحيح على طول البيانات الأصلية.
عناوين URI للبيانات في تطوير الويب: يمكنك تضمين الصور والخطوط وغيرها من الملفات الثنائية مباشرةً في HTML أو CSS بترميزها كـBase64. على سبيل المثال، يمكن تضمين أيقونة صغيرة كـ<img src="data:image/png;base64,iVBORw0K...">، ما يلغي طلب HTTP. هذا مفيد للأصول الصغيرة لكنه غير عملي للملفات الكبيرة بسبب الحجم الإضافي.
مرفقات البريد الإلكتروني: يستخدم معيار MIME ترميز Base64 لتحويل المرفقات الثنائية (الصور وملفات PDF وغيرها) إلى نص يمكنه العبور عبر خوادم SMTP المصممة للتعامل مع نصوص ASCII. في كل مرة تُرفق فيها ملفاً بالبريد الإلكتروني، يعمل Base64 خلف الكواليس.
تخزين البيانات الثنائية في JSON أو XML: هذه الصيغ نصية ولا يمكنها تمثيل البيانات الثنائية العشوائية أصلاً. عندما تحتاج واجهة برمجية (API) إلى نقل ملف أو صورة أو مادة تشفيرية كجزء من استجابة JSON، يُعدّ ترميز Base64 الحل القياسي.
المصادقة الأساسية في HTTP: يشفّر مخطط HTTP Basic Auth بيانات الاعتماد كـBase64 في رأس Authorization: Authorization: Basic dXNlcjpwYXNz. مجدداً — هذا ليس تشفيراً. يجب استخدامه فقط عبر HTTPS.
المفاتيح التشفيرية والشهادات: صيغة PEM المستخدمة على نطاق واسع لشهادات TLS ومفاتيح SSH تلفّ بيانات DER الثنائية المُشفَّرة في Base64 بين ترويسات -----BEGIN CERTIFICATE----- و-----END CERTIFICATE-----.
يستخدم Base64 القياسي + و/ اللذين لهما معانٍ خاصة في عناوين URL. يستبدل Base64 الآمن لعناوين URL - بـ+ و_ بـ/، مما يجعل السلسلة المُشفَّرة آمنة للتضمين في عنوان URL دون ترميز النسبة المئوية. ستواجه هذا النوع في رموز JWT (JSON Web Tokens) وتدفقات OAuth.
يعكس فك التشفير العملية بالضبط. كل مجموعة من 4 أحرف Base64 تُعيَّن مجدداً إلى 3 بايت من البيانات الثنائية. معظم لغات البرمجة تدعم Base64 مدمجاً:
btoa(str) للترميز، atob(str) لفك الترميز (المتصفح)؛ Buffer.from(str, 'base64') في Node.jsimport base64; base64.b64encode(data) وbase64.b64decode(data)echo -n "hello" | base64 وecho "aGVsbG8=" | base64 --decodeلا يناسب Base64 الحالات التي تحتاج فيها إلى أمان فعلي — استخدم التشفير المناسب عوضاً عنه. كما يضيف حجماً إضافياً، لذا لا تستخدمه لعمليات نقل ثنائية كبيرة حيث يتوفر تدفق ثنائي مباشر. عند تخزين البيانات في قاعدة بيانات تدعم أنواع الأعمدة الثنائية (BLOB وBYTEA)، فإن تخزين البيانات الثنائية الخام أكثر كفاءة من نص مُشفَّر بـBase64.
فهم Base64 يساعدك على قراءة توثيق الواجهات البرمجية وتصحيح حركة مرور الشبكة والعمل بثقة مع الشهادات والرموز والوسائط — مهارة أساسية لأي مطور ويب.
افتح مشفّر ومفكّك Base64 المجاني — حوّل النص أو البيانات الثنائية فوراً. يعمل كلياً في متصفحك؛ لا شيء يُرسل إلى خادم.