أداة ترميز وفك ترميز Base64 عبر الإنترنت

0 chars
0 chars

هل تحتاج إلى تحويل نص مقروء إلى صيغة Base64 للاستخدام في رؤوس HTTP، أو على العكس، فك تشفير محتوى رمز API؟ أداة Base64 Text Encoder & Decoder الخاصة بنا هي أداة متخصصة للتعامل مع سلاسل النصوص، ويمكنها التعامل مع التعقيدات مثل علامات التشكيل أو الأحرف الخاصة.

هل تعمل مع الصور؟
إذا كان الكود الخاص بك يبدأ بـ data:image/png... أو كنت ترغب في تحويل ملف إلى نص، فستعرض لك هذه الأداة أحرفًا غير منطقية فقط. استخدم أداتنا المتخصصة لتحويل الصور.

كيف يعمل تنسيق Base64؟

يستخدم الكثير من الناس Base64 يوميًا، ولكن قليلين هم من يعرفون كيف يعمل “تحت الغطاء”. إنه ليس سحرًا، بل مجرد رياضيات بسيطة بالبتات.

يتم تخزين النص العادي في الكمبيوتر في 8 بتات (1 بايت). لكن Base64 يستخدم “أبجدية” مكونة من 64 حرفًا (A-Z, a-z, 0-9, +, /). نظرًا لأن 2^6 = 64، فإن حرف Base64 واحدًا يمثل بالضبط 6 بتات من المعلومات.

عملية التحويل (الخوارزمية):

  1. تُؤخذ ثلاثة أحرف من النص الخاص بك (3 × 8 بتات = 24 بتًا).
  2. تقسم هذه الـ 24 بتًا إلى أربع مجموعات من 6 بتات.
  3. يُعين لكل مجموعة حرف من جدول Base64.

النتيجة: نظرًا لأننا نحول 3 أحرف إلى 4 أحرف، فإن سلسلة Base64 الناتجة تكون دائمًا أطول بحوالي 33% من النص الأصلي.

مشكلة مجموعة الأحرف: لماذا تقوم محولات Base64 العادية بإتلاف اللغة التشيكية؟

إذا حاولت في أي وقت تشفير كلمة “Kůň” في وحدة تحكم المتصفح باستخدام الدالة btoa('Kůň')، فمن المحتمل أن تكون قد تلقيت خطأ: String contains characters outside of the Latin1 range.

تم تصميم Base64 في الأصل لأحرف ASCII ذات 7 بتات. ومع ذلك، فإن اللغة التشيكية والرموز التعبيرية (الإيموجي) والرموز الخاصة الأخرى (UTF-8) تشغل بايتات متعددة في الذاكرة (multibyte characters).

  • الحرف a = 1 بايت.
  • الحرف ř = 2 بايت.
  • الرموز التعبيرية 🚀 = 4 بايتات.

تحل أداتنا هذه المشكلة. قبل الترميز إلى Base64 نفسه، نقوم بتحويل النص بشكل صحيح إلى تسلسل من بايتات UTF-8. بفضل هذا، يمكنك ترميز كائنات JSON والنصوص التشيكية والرموز الحديثة بأمان دون خطر تلف البيانات.

أين يستخدم ترميز نص Base64؟

بينما تُستخدم الصور في Base64 بشكل أساسي للتضمين في CSS/HTML، فإن لـ Base64 النصي استخدامات مختلفة تمامًا في أنظمة الواجهة الخلفية (backend):

1. مصادقة HTTP الأساسية (HTTP Basic Authentication)

عند تسجيل الدخول إلى واجهة برمجة التطبيقات (API)، غالبًا ما يبدو الرأس كالتالي: Authorization: Basic dXppdmF0ZWw6aGVzbG8= خلف هذا الكود يكمن ببساطة اسم مستخدم وكلمة مرور مدمجين في شكل uživatel:heslo. تتيح لك أداتنا إنشاء أو التحقق من هذه الرؤوس بسهولة.

2. رموز الويب JSON (JSON Web Tokens - JWT)

تستخدم تطبيقات الويب الحديثة ما يسمى بـ JWT لتسجيل الدخول. يبدو هذا الرمز المميز كسلاسل طويلة مفصولة بنقاط. جزء البيانات (الحمولة - Payload) هو كائن JSON عادي مشفر بـ Base64.

  • نصيحة: حاول لصق الجزء الأوسط من رمز JWT الخاص بك هنا وفك ترميزه. سترى بالضبط البيانات التي يسجلها التطبيق عنك (مثل معرف المستخدم، تاريخ انتهاء الصلاحية).

3. ملفات التكوين (أسرار Kubernetes)

تقوم منصات مثل Kubernetes بتخزين البيانات السرية (Secrets) في ملفات تكوين YAML بتنسيق Base64. هذا ليس تشفيرًا، ولكنه طريقة لتخزين البيانات الثنائية أو النصوص التي تحتوي على أحرف إشكالية (أسطر جديدة، علامات اقتباس) في ملف نصي.

ما هو “ترميز Base64 الآمن لروابط URL” ولماذا هو مهم؟

تحتوي أبجدية Base64 القياسية على الأحرف + (علامة زائد) و / (شرطة مائلة). لكلا هذين الحرفين معنى خاص في عناوين URL:

  • / يفصل الدلائل.
  • + غالبًا ما يفسر على أنه مسافة.

إذا أرسلت Base64 قياسيًا في معلمة URL (على سبيل المثال، site.com?token=ab/cd+ef)، فقد يقرأ الخادم البيانات بشكل خاطئ.

الحل (وضع URL الآمن): يقوم مفتاح التبديل الخاص بنا بتنشيط إصدار Base64URL (وفقًا لمعيار RFC 4648)، والذي يقوم بإجراء التغييرات التالية:

  • يتم تغيير + إلى - (شرطة).
  • يتم تغيير / إلى _ (شرطة سفلية).
  • في النهاية، يتم إزالة الأحرف = (الحشو)، والتي ليست ضرورية في عناوين URL.

خرافة: Base64 ليس تشفيرًا!

من المهم إدراك الفرق الجوهري الذي غالبًا ما يخلط فيه المبتدئون:

  1. الترميز (Encoding - Base64): يستخدم لنقل البيانات. إنه مثل حزم شيء في حقيبة حتى لا يتضرر في الطريق. أي شخص يجد الحقيبة يمكنه فتحها (فك ترميزها) ورؤية المحتوى. إنه ليس آمنًا للبيانات السرية.
  2. التشفير (Encryption - AES, RSA): يقفل البيانات بمفتاح. بدون المفتاح، لا يمكنك الوصول إلى المحتوى.
  3. التجزئة (Hashing - SHA, MD5): عملية أحادية الاتجاه (على سبيل المثال، لتخزين كلمات المرور). لا يمكن الحصول على النص الأصلي من النتيجة.

إذا كنت بحاجة إلى إرسال كلمة مرور أو معلومات حساسة، فإن Base64 وحده لا يكفي. يجب عليك استخدام HTTPS (SSL/TLS) الذي يقوم بتشفير النقل.


الأسئلة الشائعة (FAQ)

ماذا تعني علامة "=" في نهاية السلسلة؟ هذا ما يسمى بـ "الحشو" (padding). نظرًا لأن Base64 يقوم بترميز البيانات في مجموعات من 3 أحرف، فقد لا يكون طول النص الأصلي قابلاً للقسمة على ثلاثة. تضاف علامات `=` في النهاية حتى يتعرف مفكك الترميز على عدد البتات التي يجب تجاهلها في النهاية.
لماذا يظهر النص المفكوك الترميز "مبعثرًا"؟ من المحتمل أنك تحاول فك ترميز بيانات ليست نصًا. إذا كانت سلسلة Base64 تمثل ملفًا مضغوطًا (ZIP) أو صورة أو بيانات مشفرة، فإن التحويل إلى نص (UTF-8) لا معنى له. حاول معرفة مصدر البيانات.
هل تعمل الأداة بدون اتصال بالإنترنت؟ نعم. جميع منطق التحويل مكتوب بلغة JavaScript ويعمل مباشرة في متصفحك. بمجرد تحميل الصفحة، يمكنك قطع الاتصال بالإنترنت وستظل الأداة تعمل. لا يتم إرسال بياناتك إلى أي مكان.