ترميز / فك ترميز Base64
حوّل النص إلى Base64 أو فكّ ترميزه، مباشرةً أثناء الكتابة. دعم كامل لـ UTF-8، بحيث تُحفظ الأحرف المنقّطة والإيموجي والأبجديات غير اللاتينية بشكل صحيح في الاتجاهين.
ما فائدة Base64
نص آمن للبيانات الثنائية، وليس تشفيرًا.
يحوّل Base64 بايتات عشوائية إلى سلسلة تستخدم فقط الأحرف والأرقام و+ و/، وهي آمنة للتضمين في JSON أو عناوين URL أو رسائل البريد الإلكتروني حيث قد تتعطل البيانات الثنائية الخام. إنه ليس تشفيرًا: يمكن لأي شخص فك ترميزه فورًا، لذا فهو لا يخفي أو يحمي أي شيء بمفرده.
النسخة الآمنة لعناوين URL
لحرفَي + و/ في Base64 القياسي معنى خاص في عناوين URL. تستبدلهما النسخة الآمنة لعناوين URL بـ - و_ وتحذف حشو = النهائي، بحيث يمكن استخدام النتيجة مباشرةً في سلسلة استعلام أو اسم ملف.
كيف يعمل
عند الترميز، يُحوَّل نصك أولًا إلى بايتات UTF-8 خام باستخدام واجهة TextEncoder الخاصة بالمتصفح، وتُمرَّر تلك البايتات إلى دالة btoa() المدمجة. هذه الخطوة الأولى مهمة: تتعامل btoa() وحدها فقط مع أحرف Latin-1 وتفشل مع أي شيء آخر، لذا فإن الأدوات التي تتخطى هذه الخطوة تتعطل بصمت مع الإيموجي أو الأحرف المنقّطة أو أي أبجدية غير لاتينية. يعمل فك الترميز بنفس الخط بالاتجاه المعاكس: تحوّل atob() Base64 مرة أخرى إلى بايتات، ويعيد TextDecoder تجميعها في نص. كما أن فك الترميز متساهل عمدًا: يزيل المسافات البيضاء، ويقبل كلًا من الأبجدية القياسية والآمنة لعناوين URL، ويعيد إضافة أي حشو = محذوف، بحيث يمكن فك ترميز مقطع منسوخ مباشرةً من JWT أو سلسلة استعلام دون إصلاح يدوي.
تَوقَّع أن يكون الإخراج أكبر بحوالي 33% من الإدخال. يستخدم Base64 64 رمزًا، ولا يمكن لـ 64 رمزًا أن يحمل سوى 6 بتات لكل منها، لذا فإن كل 3 بايتات من الإدخال تصبح 4 أحرف من الإخراج. لهذا السبب يكلّفك تضمين صورة بحجم 1 ميغابايت كـ URI بيانات Base64 حوالي 1.37 ميغابايت من HTML، ولهذا السبب Base64 هو تنسيق نقل، وليس تنسيق ضغط.
يعمل كلا الاتجاهين ضمن جافاسكريبت هذه الصفحة نفسها مع كل ضغطة مفتاح، باستخدام btoa وatob فقط وواجهات ترميز النصوص التي يوفّرها متصفحك بالفعل. يمكنك التحقق من ذلك: افتح أدوات المطوّر، انتقل إلى تبويب الشبكة، واكتب كما تشاء. لا يحمل أي طلب نصك إلى أي مكان أبدًا.