لا يكون التشفير مفيدًا إلا إذا اتفق الطرفان عليه. أصغر تمثيل ليس بالضرورة هو الخيار الأفضل عندما يحتاج المتلقي إلى أبجدية مألوفة، أو يجب أن تتم كتابة الحمولة بواسطة شخص ما، أو أن بناء الجملة المحيط يعامل أحرفًا معينة بشكل خاص. ابدأ ببروتوكول الاستلام.
Hex مطول ولكن من السهل فحصه
يكتب النظام الست عشري كل بايت كرقمين. يصبح تسلسل البايت FF 00 41 ff0041. يحتوي كل زوج على حدود بايت مرئية، مما يساعد عند فحص توقيعات الملفات والمجموع الاختباري وحزم البروتوكول. إنه يضاعف عدد الأحرف، لكن أبجديته الصغيرة عادةً ما تتناسب بسهولة مع السجلات وأدوات تصحيح الأخطاء.
Base64 يوازن بين الحجم وإمكانية التشغيل التفاعلي
يمثل Base64 ثلاث بايتات بأربعة أحرف. إنه مناسب بشكل شائع للحقول الثنائية داخل التنسيقات النصية. يتضمن المعيار Base64 علامة الجمع والشرطة المائلة؛ يستبدل Base64URL هذه الأحرف عندما يحتاج البروتوكول إلى أبجدية مختلفة. لا تزال قواعد الحشو والمسافات البيضاء بحاجة إلى اتفاق. ولا يخبر أي من النموذجين المتلقي ما إذا كانت وحدات البايت التي تم فك تشفيرها عبارة عن نص أو صورة أو محتوى مضغوط.
ينتمي ترميز النسبة المئوية إلى مكونات URL
يكتب ترميز النسبة المئوية بايتًا تم تجاوزه كـ %HH. إنه ليس مجرد بديل مجمع لـ Base64. يحدد المكون الأحرف التي يجب تجاوزها، ويجب ترميز النص أولاً كـ UTF-8. قد تفصل الشرطة المائلة مقاطع المسار بينما تبدأ علامة الاستفهام استعلامًا؛ إن معالجة URL بالكامل كعنصر واحد غير شفاف يغير معناه.
console.log(encodeURIComponent('a+b / 中文'));
// a%2Bb%20%2F%20%E4%B8%AD%E6%96%87
Base85 يحتاج إلى متغير دقيق
تمثل العديد من أنظمة Base85 أربعة بايتات بخمسة أحرف، لكن الحروف الهجائية والمحددات والحالات الخاصة تختلف. لا يمكن افتراض أن ASCII85 وZ85 قابلان للتبديل. تفرض Z85 أيضًا متطلبات حجم الكتلة. قد تحتوي الأبجدية عالية الكثافة على علامات ترقيم يجب تخطيها مرة أخرى بالتنسيق المحيط، مما يقلل من الفائدة الظاهرة.
لا تخلط بين ترميزات البايت هذه وتحويل العدد الصحيح 255 بين قواعد الأرقام. يمكن أن يبدأ الملف بصفر بايت، في حين أن التمثيل الصحيح قد يتجاهل تلك الأصفار البادئة. يجب أن يحدد برنامج ترميز الملفات القابل للعكس كيفية الحفاظ على الطول والأصفار البادئة.
استخدم Hex لفحص البايت، والمتغير Base64 المحدد للنقل الثنائي القابل للتشغيل البيني، URL وترميز المكونات لعناوين URL، والمخطط المتخصص فقط عندما يقوم الطرفان بتنفيذ نفس العقد. قارن الحجم من طرف إلى طرف بعد الهروب والضغط. RFC 4648 يحدد عائلات Base16 وBase32 وBase64 القياسية، بما في ذلك الحروف الهجائية المميزة الخاصة بها.