الترميز إلى Base64
نص أو صورة أو أي ملف — يُحوَّل إلى Base64 بشكل صحيح. تبقى الحروف المشكَّلة والرموز التعبيرية سليمة، وهو ما لا تنجح فيه التطبيقات المعتادة المكتوبة في سطر واحد. لا يُخزَّن أي شيء.
- لا يُخزَّن أبدًا
- لا طابور ولا انتظار
- دون تسجيل ودون علامة مائية
يُرمَّز النص بـ UTF-8، فتبقى الحروف المشكَّلة والرموز التعبيرية سليمة.
يظهر Base64 هنا.
كيف تعمل الأداة
الصق نصًا أو أفلِت ملفًا
يُرمَّز النص بـ UTF-8. ويُرمَّز الملف بايتًا بايتًا، ولا يُخزَّن أبدًا.
اختر النوع
Base64 القياسي، أو Base64URL الآمن للروابط من أجل الرموز المميزة وسلاسل الاستعلام، أو Data URI كامل جاهز للصق في CSS أو في وسم <img>.
انسخه
انسخ النتيجة، أو نزّلها كملف نصي إن كانت كبيرة.
لماذا يزيد الحجم بمقدار الثلث بالضبط
يأخذ Base64 ثلاثة بايتات في كل مرة ويكتبها في أربعة أحرف، يحمل كل منها ستًا من البتات الأربع والعشرين. ومن قسمة أربعة على ثلاثة تأتي نسبة 33 في المئة الشهيرة — إنها عملية حسابية لا عدم كفاءة، ولا يوجد مُرمِّز يتفوق عليها مع البقاء ضمن نطاق الأحرف القابلة للطباعة. وحين لا تنقسم البيانات على ثلاثة بالتساوي، تُحشى المجموعة الأخيرة وتُعلَّم بعلامة = واحدة أو اثنتين، ولهذا يكون طول أي سلسلة Base64 دائمًا من مضاعفات الأربعة.
هناك أبجديتان، واختيار الخطأ منهما هو أكثر مشكلة يأتي بها الناس إلى هنا. تنتهي الأبجدية القياسية بالحرفين + و/، ولكليهما معنى في رابط URL — فعلامة الجمع تصبح مسافة في سلسلة الاستعلام، والشرطة المائلة تبدو كفاصل مسار. أما النسخة الآمنة لروابط URL فتستخدم - و_ بدلًا منهما، وهي ما تستخدمه رموز JSON Web Tokens وأسماء الملفات وكل ما يظهر في عنوان. وهما متطابقتان فيما عدا ذلك، والقيمة المرمَّزة بإحداهما وفُك ترميزها بالأخرى تفشل بطرق تبدو كتلف في البيانات.
لفّ الأسطر هو التفصيل الآخر الذي يعتمد على السياق. تتوقع مرفقات البريد الإلكتروني أسطرًا من 76 حرفًا، وتتوقع شهادات PEM ومفاتيحها 64 حرفًا، بينما لا يتوقع Data URI أو حقل JSON أي فواصل على الإطلاق. وهو معطّل هنا افتراضيًا لأن الحالة الشائعة اليوم هي عدم اللف؛ فعّله حين تكون الوجهة ترويسة بريد إلكتروني أو كتلة -----BEGIN-----، التي سترفض سطرًا واحدًا هائل الطول.
Base64 ليس تشفيرًا ولا يوفّر أي حماية على الإطلاق. إنه مجرد تغيير في الأبجدية — يستطيع أي شخص عكسه فورًا، وتفعل ذلك أي أداة فحص أمني تلقائيًا. والغرض منه نقل البيانات الثنائية عبر قنوات لا تقبل إلا النصوص: نصوص رسائل البريد الإلكتروني، وحقول JSON، ومستندات XML، وData URI في ملف أنماط. واستخدامه لإخفاء كلمة مرور في ملف إعدادات لا يخفي شيئًا عن أي شخص ينظر.
عندما تحتاج إلى شيء آخر
في سطر الأوامر، يرمّز base64 -w 0 file.bin دون لفّ على Linux، ويفعل base64 وحده الشيء نفسه على macOS، بينما يعمل openssl base64 -A بالطريقة نفسها في كل مكان. أما للأبجدية الآمنة لروابط URL، فإن basenc --base64url هو الذي يُتقنها دون خطوة استبدال.
مع الملفات الكبيرة، كل ما هنا هو النهج الخطأ — فالملف كله يُحتفظ به في الذاكرة، والترميز يضخّمه بمقدار الثلث قبل أن يحدث أي شيء آخر. أدوات سطر الأوامر تعالج البيانات كتدفق بدلًا من ذلك، وفي البرمجة لكل لغة مُرمِّز تدريجي. ومن المفيد أيضًا أن تسأل هل تحتاج إلى Base64 أصلًا: فإرسال البيانات الثنائية بصيغة multipart/form-data أو كجسم طلب خام يتجنب مشكلة الذاكرة ونسبة 33 في المئة معًا.
الأسئلة الشائعة
هل يُخزَّن النص أو الملف في أي مكان؟
لا. لا يُخزَّن أي شيء، ولا يُسجَّل أي شيء، ولا يراه أي خادم — ويستمر في العمل مع قطع الاتصال بالشبكة. وفي هذه الأدوات تحديدًا، هذا ليس مجرد لمسة لطيفة. فما يلصقه الناس في أدوات الترميز وفك الترميز عبر الإنترنت يكون في الغالب صالحًا للاستخدام: رموز جلسات، ومفاتيح API، وترويسات Authorization، وسجلات عملاء. ولصق أي منها في صفحة ترسله إلى مكان ما هو إفشاء له، مهما وعد الموقع بحذفه.
لماذا تعمل الحروف المشكَّلة والرموز التعبيرية هنا؟
لأن النص يُحوَّل إلى بايتات UTF-8 قبل ترميزه، وهذا هو الترتيب الصحيح وما تتجاوزه معظم التطبيقات السريعة. الدالة `btoa` المدمجة في المتصفح لا تقبل النص أصلًا — فهي تأخذ بايتًا واحدًا لكل حرف، لذا فإن `btoa("café")` ترمي خطأً ببساطة. والحل الشائع، `btoa(unescape(encodeURIComponent(s)))`، ينجح مصادفةً وينهار مع الرموز التعبيرية وغيرها من الأحرف خارج النطاق الأساسي. أما هذه الصفحة فترمّز UTF-8 بشكل صحيح، مرة واحدة، فيمرّ 日本語 و🎉 ويعودان بعد فك الترميز كما هما تمامًا.
ما Base64URL ومتى أحتاج إليه؟
إنه Base64 مع استبدال حرفين: + يصبح -، و/ تصبح _، ويُحذف الحشو = في النهاية. وهو موجود لأن +، و/، و= لكلٍّ منها معنى في رابط URL، لذا يتشوّه Base64 العادي حين ينتقل في سلسلة استعلام أو مسار. تستخدم رموز JWT وOAuth وكل ما يوضع في رابط URL صيغة Base64URL. وإذا كنت ستضع النتيجة في رابط، فاختر «آمن لروابط URL».
هل يشفّر Base64 أي شيء أو يحميه؟
لا، ويستحق الأمر أن نكون صريحين. Base64 ترميز لا تشفير — لا مفتاح فيه ولا سرّ. أي شخص يرى السلسلة يستطيع فك ترميزها بخطوة واحدة، بما في ذلك على هذا الموقع. وهو موجود لنقل البيانات الثنائية بأمان عبر قنوات لا تقبل إلا النصوص، مثل مرفقات البريد الإلكتروني وData URI. وإذا كان هناك شيء يجب أن يبقى سرًا، فهو يحتاج إلى تشفير؛ فـ Base64 لا يوفّر أي حماية على الإطلاق.
لماذا Base64 أكبر من ملفي؟
أكبر بنحو 33% دائمًا. يمثّل Base64 كل 3 بايتات بـ 4 أحرف نصية، لذا يزيد الحجم بمقدار الثلث بحكم التصميم، مع قليل من الحشو. هذا هو ثمن تحويل البيانات الثنائية إلى نص، ولهذا يكون تضمين صورة كبيرة كـ Data URI في ملف CSS صفقة خاسرة في الغالب.
هل يمكنني ترميز صورة كـ Data URI؟
نعم — أفلِت الصورة واختر «Data URI». تحصل على السلسلة الكاملة `data:image/png;base64,…` مع نوع الوسائط الصحيح مُعبّأً مسبقًا، جاهزة للصق في ملف أنماط أو وسم <img> أو قالب بريد إلكتروني.
هل هناك حد للحجم؟
الذاكرة المتاحة، لا حد ثابت للحجم، وهي كافية بسخاء — فالملفات التي تبلغ ميغابايتات كثيرة تُرمَّز دون مشكلة. يجري الترميز على أجزاء تحديدًا للتعامل مع الملفات الكبيرة؛ أما التطبيق البديهي فينهار عند نحو 125 KB برسالة «Maximum call stack size exceeded»، وهي علّة موجودة في عدد كبير جدًا من أدوات الترميز عبر الإنترنت.
معلومة مفيدة: يجعل Base64 البيانات أكبر بنحو 33% — هذه طبيعة الصيغة لا عيب فيها. تُقرأ الملفات في الذاكرة كاملة، لذا قد يستنفد ملف كبير جدًا ذاكرة علامة التبويب على الهاتف قبل أن ينتهي. لفّ الأسطر معطّل افتراضيًا؛ بينما تتوقعه صيغ البريد الإلكتروني وPEM مفعّلًا.
أضِف هذه الأداة إلى موقعك
مجانية لأي مدونة أو صفحة فصل دراسي أو مقالة مساعدة. الصق مقتطفًا واحدًا وسيتمكن زوارك من استخدامها مباشرةً على صفحتك.