ترميز وفك ترميز Base64

حوّل النصوص والملفات إلى Base64 والعكس. يتعامل مع Unicode بشكل صحيح، ويدعم base64url الآمن للروابط، ويخبرك بالضبط لماذا تفشل المدخلات غير الصالحة.

يعمل في متصفحكبدون تسجيللا يُرفع شيء

مخرجات Base64

طريقة استخدام ترميز وفك ترميز Base64

  1. اختر ترميز أو فك الترميز.
  2. اكتب المدخلات أو الصقها. تتحدث النتيجة أثناء الكتابة.
  3. لعناوين URL ورموز JWT وأسماء الملفات، فعّل آمن للروابط لاستخدام - و_، ويمكنك اختياريًا حذف حشو =.
  4. لتضمين صورة أو خط، انقر ترميز ملف وأبقِ خيار إخراج كـ data URI مفعّلًا.
  5. انسخ النتيجة، أو استخدم تبديل لإعادتها كمدخلات في الاتجاه المعاكس.

كيف يعمل Base64

يمثّل Base64 البيانات الثنائية باستخدام 64 حرف ASCII قابلًا للطباعة: A-Z وa-z و0-9 و+ و/. كل 3 بايتات من المدخلات تصبح 4 أحرف، لذا تكون البيانات المرمَّزة أكبر بنحو 33%. وعندما لا يكون طول المدخلات من مضاعفات 3، تُحشى المخرجات بعلامة = واحدة أو اثنتين. إن Base64 ترميز وليس تشفيرًا: يمكن لأي شخص فك ترميزه.

Base64 القياسي مقابل base64url

للحرفين + و/ معنى خاص في عناوين URL ومسارات الملفات. تستبدلهما الأبجدية الآمنة للروابط من RFC 4648 §5 بـ - و_ وعادةً ما تحذف الحشو. تستخدم رموز JWT والعديد من معاملات OAuth وبعض واجهات API السحابية صيغة base64url. ويقبل فك الترميز هنا الأبجديتين تلقائيًا.

Unicode ومشكلة btoa()

في المتصفحات، تعمل btoa("café") لكن btoa("日本") تُطلق خطأ، لأن btoa لا تقبل إلا Latin-1. والطريقة الصحيحة هي ترميز النص إلى بايتات UTF-8 أولًا، وهذا ما تفعله هذه الأداة. في JavaScript: btoa(String.fromCharCode(...new TextEncoder().encode(text)))، أو Buffer.from(text).toString('base64') في Node.js.

استخدامات شائعة

  • عناوين Data URI للصور والخطوط الصغيرة في CSS أو HTML
  • ترويسات مصادقة HTTP Basic (‏user:password مرمَّزة)
  • المرفقات الثنائية في حمولات JSON والبريد الإلكتروني (MIME)
  • Kubernetes Secrets، التي تخزّن القيم بصيغة Base64

الأسئلة الشائعة

هل Base64 تشفير؟
لا. Base64 ترميز قابل للعكس بلا مفتاح. يمكن لأي شخص فك ترميزه، لذا لا تستخدمه أبدًا لإخفاء كلمات المرور أو الأسرار.
لماذا يفشل فك ترميز Base64 لديّ؟
الأسباب الشائعة هي أحرف خارج الأبجدية (غالبًا علامة اقتباس أو فاصل سطر شارد من النسخ)، أو سلسلة مقتطعة، أو خلط نص ليس Base64. تعرض رسالة الخطأ موضع أول مشكلة.
المخرجات بعد فك الترميز تبدو كرموز عشوائية. لماذا؟
على الأرجح أن البيانات ثنائية، كصورة أو ملف مضغوط أو بايتات مشفّرة، وليست نصًا. تكتشف الأداة ذلك، وتعرض تفريغًا ست عشريًا، وتتيح لك تنزيل البايتات الخام.
هل أحتاج إلى حشو =؟
تعمل كثير من أدوات فك الترميز، ومنها هذه، بدونه لأن الطول يخبرها بعدد البايتات الناقصة. وتتطلبه بعض الأدوات الصارمة. رموز JWT ومعظم استخدامات base64url تحذف الحشو.
هل تُرفع ملفاتي؟
لا. تُقرأ الملفات وتُرمَّز محليًا باستخدام File API في المتصفح. لا يُرسل أي شيء إلى خادم.

أدوات ذات صلة