Base64: بيانات ثنائية كنص
بعض الأماكن لا تقبل إلا النص: البريد الإلكتروني، وJSON، وسمات HTML. يحول Base64 أي بيانات إلى 64 حرفًا آمنًا (A–Z، وa–z، و0–9، و+ و/)، لتمر عبرها دون تغيير. «Hello» تصبح SGVsbG8=.
- كل 3 بايتات تصبح 4 أحرف، فيشغل Base64 مساحة أكبر بـ 33% من الأصل.
- علامات = في النهاية تحشو المخرجات حتى مضاعف من 4 أحرف.
- النسخة الآمنة لعناوين URL تستخدم - و_ بدلًا من + و/، اللتين لهما معنى خاص في عناوين الويب.
ليس تشفيرًا
يستطيع أي أحد فك ترميز Base64؛ لا مفتاح له. لا تستخدمه أبدًا لإخفاء كلمة مرور أو أي سر آخر.
Data URI
يمكن كتابة صورة صغيرة مباشرة في HTML أو CSS كـ data:image/png;base64, يليه نصها بـ Base64، فيُوفَّر تنزيل منفصل. وبسبب زيادة الحجم، لا يستحق ذلك إلا للأيقونات الصغيرة. تنشئ أداة صورة إلى Base64 عنوان data URI لك، أو تحول واحدًا إلى صورة مجددًا.
ترميز URL أمر مختلف
ترميز URL (بالنسبة المئوية) يستبدل فقط الأحرف غير المسموح بها أو التي لها معنى خاص في عنوان ويب، كلًا منها بـ % وقيمة بايتها. «café & crème» تصبح caf%C3%A9%20%26%20cr%C3%A8me: المسافة %20، و& هي %26، وé، التي تشغل بايتين في UTF-8، هي %C3%A9. وكل حرف عربي يشغل بايتين أيضًا، فـ «سلام» تصبح %D8%B3%D9%84%D8%A7%D9%85. وكل ما عدا ذلك يبقى مقروءًا.
رمّز النص وفك ترميزه بـ ترميز Base64 وفك ترميزه وترميز URL وفك ترميزه.
ترميز ثلاثة أحرف يدويًا
خذ الكلمة Man. بايتاتها الثلاثة 77 و97 و110، أو 01001101 01100001 01101110 بالنظام الثنائي. يعيد Base64 تجميع هذه البتات الـ 24 في أربع مجموعات من ست:
010011 010110 000101 101110
19 22 5 46
T W F u
كل رقم من ست بتات يختار محرفًا من الأبجدية A–Z وa–z و0–9 و+ و/، فتصبح Man TWFu. وحين لا يكون المدخل من مضاعفات ثلاثة بايتات، تُملأ النهاية بعلامات =.
كم يكبر
صورة حجمها 30 KB تشغل نحو 40 KB بترميز Base64. ولهذا تصلح عناوين data URI للأيقونات ذات الكيلوبايتات القليلة، لا للصور الفوتوغرافية.
مشكلات شائعة
- يفشل فك ترميز النصوص الطويلة. يضيف البريد وبعض الأدوات فاصل سطر كل 76 محرفًا. أزل فواصل الأسطر قبل فك الترميز.
- تُرفض محارف مثل - أو _. يستخدم النص الأبجدية الآمنة للروابط. استبدل - بـ + و_ بـ /، أو استخدم أداة فك تقبل الاثنتين.
- علامة = الأخيرة مفقودة. بعض الأنظمة تحذف الحشو. أضف علامات = حتى يصبح الطول من مضاعفات الأربعة.
- يُظهر النص المفكوك محارف غريبة. كان النص الأصلي بترميز محارف آخر. معظم النصوص الحالية UTF-8؛ وفي النصوص العربية القديمة جرّب Windows-1256 بعدها.