هذا الخلط شائع بما يكفي ليكون له تصنيف خاص في فهارس الثغرات، وهو باقٍ لأن مخرجات Base64 تبدو تمامًا كما يتخيّل الناس شكل البيانات المعمّاة: جدار من الحروف والأرقام ينتهي بعلامة يساوي.
ليس فيه أي خلط. هو المعلومة نفسها مكتوبة بأبجدية أخرى، بقواعد منشورة في وثيقة عامة.
ثلاث وظائف مختلفة
الترميز يغيّر كيف تُمثَّل البيانات لتصمد في رحلة. لا مفتاح ولا سرّ، وقابل للعكس بالكامل من أي أحد. Base64 وترميز الروابط وكيانات HTML كلها ترميزات.
التعمية تجعل البيانات غير مقروءة دون مفتاح. لا يعكسها إلا من يملكه. هذه هي التي توفّر السرّية.
حساب البصمة ينتج قيمة ثابتة الطول وهو عمدًا غير قابل للعكس. يُستعمل للتحقّق من تطابق شيء، لا لتخزين شيء تحتاج استعادته.
الفحص الذي يفصل بينها: هل أستطيع استعادة الأصل، وماذا أحتاج لأفعل ذلك؟ لا شيء إطلاقًا يعني ترميزًا. مفتاح يعني تعمية. لا تستطيع يعني بصمة.
ما الغرض الحقيقي من Base64
أنظمة كثيرة بُنيت لتحمل نصًّا وتسيء التعامل مع البايتات الاعتباطية. البريد الإلكتروني هو المثال التاريخي — فقد صُمّم لمحارف من سبع بتّات، والبايت الذي بتّه الأعلى مضبوط كان يمكن أن يُغيَّر أو يُسقَط في الطريق.
يأخذ Base64 أي بيانات ويعيد كتابتها بـ64 محرفًا تصمد في تلك الرحلة سالمة: A–Z وa–z و0–9 وعلامة الزائد والشرطة المائلة. كل ثلاث بايتات تصير أربعة محارف، ومن هنا تأتي الزيادة البالغة 33% في الحجم، و= يحشو الآخر حين لا يكون طول المدخل من مضاعفات الثلاثة.
مرفق البريد الإلكتروني إذن هو Base64. عنوان البيانات الذي يضمّن صورة في ورقة أنماط هو Base64. كتلة ثنائية داخل مستند JSON هي Base64، لأن JSON لا يملك طريقة لحمل بايتات خام.
كله نقل. لا شيء منه حماية.
أين يكلّف الخلط شيئًا
بيانات الاعتماد في ملفات الإعداد. مرمَّزة لا معمّاة، لأن الصيغة المرمَّزة لا تبدو كلمةَ مرور لمن يلقي نظرة عابرة على الملف. أما لمن يقرأه عن قصد فلا تبدو شيئًا.
مصادقة HTTP الأساسية. الترويسة حرفيًّا username:password بترميز Base64. فوق HTTP العاري هذه كلمة مرور مُرسلة علنًا. أمان النقل يأتي كلّه من TLS، والترميز لا يسهم فيه بشيء.
رموز JWT التي تُعامَل كأنها مبهمة. حمولة الرمز هي Base64 — يقرؤها كل من يحمله. وضع أي شيء خاص فيها نشرٌ له لمن يملك الرمز.
الكوكيز والتخزين المحلّي. ترميز معرّف المستخدم لا يمنع المستخدم من تعديله. فكل ما يستطيع العميل فكّه يستطيع العميل تغييره.
الصيغ
Base64 الآمن للروابط يبدّل + و/ — ولهما معنى في الرابط — بـ- و_، ويُسقط الحشو عادةً. رموز JWT تستعمله، ولهذا يفشل لصق واحد منها في فاكّ قياسي حتى تُعاد المحارف إلى ما كانت.
Base64 بصيغة MIME يدرج فاصل سطر كل 76 محرفًا، فالسلسلة المنسوخة من ترويسة بريد تصل وفيها أسطر جديدة يرفضها بعض الفاكّات.
Base64 بلا حشو شائع، ويُفكّ بلا مشكلة في معظم التنفيذات لا في كلها.
ماذا تستعمل بدلًا منه
لتُبقي شيئًا خاصًّا، عمِّه — بمفتاح، واحفظ المفتاح في مكان غير الذي بجانب البيانات.
لتخزّن كلمة مرور، احسب بصمتها بخوارزمية مصمّمة لذلك. لا SHA-256 وحدها، فهي سريعة، والسرعة هي الخاصّية الخطأ في تخزين كلمات المرور.
لتتأكّد أن ملفًّا وصل سليمًا، قارن بصمة. أما تمرير بايتات عبر شيء لا يتعامل إلا مع النص — فذاك Base64، وهو الأداة الصحيحة تمامًا.
الخلاصة
Base64 تغيير أبجدية بلا مفتاح ولا سرّ. وُجد ليصمد الثنائي في قنوات لا تحمل إلا النص، وهو لا يخفي شيئًا عن أحد. فإن كنت ستستاء من طباعة الأصل على الصفحة، فترميزه لا يغيّر من ذلك شيئًا.