Base64 هو تمثيل للبايتات باستخدام مجموعة محدودة من الأحرف النصية. يفيد عندما تقبل وسيلة النقل النص بينما تكون الحمولة بيانات ثنائية. العملية قابلة للعكس: يستعيد مفكّك الترميز الصحيح البايتات الأصلية، بما فيها الأصفار والقيم التي لا تمثّل أحرفاً صالحة. أما اختيار كيفية تفسير هذه البايتات فهو خطوة منفصلة.
ثلاث بايتات تصبح أربعة أحرف
يحتوي البايت على 8 بتات. وتوفّر 3 بايتات 24 بتاً، تُقسّم بالتساوي إلى 4 مجموعات من 6 بتات. تحدّد كل مجموعة حرفاً واحداً من مجموعة تضم 64 حرفاً. تشمل المجموعة القياسية الأحرف الإنجليزية الكبيرة والصغيرة والأرقام وعلامة الجمع (+) والشرطة المائلة (/). بالنسبة إلى نص ASCII Man، تكون البايتات 4d 61 6e بالنظام الست عشري، وتكون نتيجة الترميز TWFu.
Input bytes: 01001101 01100001 01101110
Six-bit sets: 010011 010110 000101 101110
Indexes: 19 22 5 46
Output: T W F u
تصف الحشوة المجموعة النهائية
عندما يتبقى بايت واحد، يكون الإخراج حرفين أبجديين وعلامتي يساوي. البايتتان المتبقيتان تنتجان ثلاثة أحرف أبجدية وعلامة يساوي واحدة. هكذا M يصبح TQ==بينما Ma يصبح TWE=. للحشو دور بنيوي؛ فإضافة علامات يساوي عشوائياً لا تستعيد حرفاً مفقوداً من الحمولة. ولكي يكون الترميز مطابقاً للصيغة المعيارية، يجب أن تكون البتات غير المستخدمة في الحرف الأخير صفراً أيضاً.
إذا كان الإدخال يتكوّن من n بايت، فإن طول الناتج مع الحشو هو 4 × ceil(n / 3) حرفاً. ولذلك يصبح الملف الذي حجمه 1,024 بايت سلسلة من 1,368 حرفاً، قبل إضافة بادئة Data URI أو فواصل الأسطر. Base64 ليس وسيلة ضغط، لكن تطبيق ضغط منفصل أثناء النقل قد يقلّل الحجم النهائي للبيانات المنقولة.
تحقّق من صحة البيانات قبل تفسيرها
استخدم الوضع الصارم عند اختبار الجهة المنتجة للبيانات وفق بروتوكول محدّد. واستخدم وضع التوافق إذا كان مصدر معروف قد أضاف فواصل أسطر ASCII، أو حذف الحشو، أو أرفق غلاف Data URI. راجع التعديلات المسجّلة. علامات الترقيم غير المتوقعة، واختلاط مجموعات الأحرف، والبتات غير المستخدمة التي ليست صفراً، تستدعي الفحص ولا ينبغي حذفها بصمت.
أخيراً، افحص البايتات بعد فك ترميزها. فقد يحتوي Base64 صالح على تسلسل UTF-8 غير صالح، أو صورة مبتورة، أو ملف PDF غير مكتمل. نجاح فك الترميز يثبت صحة طبقة الترميز فقط. احفظ النتائج الثنائية كبايتات، واستخدم محلّل الملفات المناسب للتحقّق من بنيتها. قواعد مجموعة الأحرف والحشو والبتات في الصيغة المعيارية محدّدة في RFC 4648.