طريقة الاستخدام
- أفلت ملفًا في منطقة الإفلات، أو انقر عليها لاختيار ملف من جهازك (حتى 100 ميغابايت).
- اختر «المخرجات»: Base64 الخام لواجهات API وملفات الإعدادات، أو Data URI لاستخدامه في HTML وCSS.
- فعّل «التفاف الأسطر عند 76 حرفًا» فقط إذا كانت الوجهة تتوقع أسطرًا بنمط MIME، مثل نص رسالة بريد إلكتروني.
- تحقّق من اسم الملف ونوع MIME والأحجام، ثم انسخ النتيجة أو نزّلها كملف .txt.
لماذا ترمّز ملفًا بـ Base64؟
كثير من الصيغ التي تنقل البيانات بين الأنظمة نصية فقط. فلا تستطيع JSON وXML وYAML وHTML وترويسات البريد الإلكتروني أن تحمل بايتات عشوائية، لأن الملف قد يحتوي على بايتات صفرية أو تسلسلات أحرف غير صالحة أو نهايات أسطر قد يغيّرها محلل النصوص. ويحوّل Base64 كل 3 بايتات من الملف إلى 4 أحرف من مجموعة تضم 64 رمزًا من الحروف والأرقام و+ و/، فيمكن لأي ملف أن ينتقل كسلسلة نصية عادية ثم يُفك ترميزه ليعود إلى البايتات نفسها تمامًا.
الثمن هو الحجم: يكون النص المرمّز أكبر من الملف بنحو 33%، وتضيف فواصل الأسطر قليلًا فوق ذلك. فالملف الذي حجمه 3 ميغابايت يصبح نحو 4 ميغابايت من Base64.
استخدامات شائعة
- واجهات API بصيغة JSON وXML. نقاط النهاية التي لا تقبل رفع الملفات عبر نماذج multipart تتوقع غالبًا الملف كسلسلة Base64 في حقل واحد، مع اسمه ونوعه في حقول أخرى.
- مرفقات البريد الإلكتروني. يرمّز MIME المرفقات بـ Base64 في أسطر لا يتجاوز طولها 76 حرفًا (RFC 2045). ويُنتج التفاف الأسطر التنسيق نفسه.
- الإعدادات والأسرار. القيم الموجودة تحت
dataفي Kubernetes Secret مرمّزة بـ Base64، لذا يجب ترميز شهادة TLS أو مخزن المفاتيح أو ملف الترخيص قبل وضعه في ملف البيان (manifest). وكثيرًا ما تحفظ أنظمة CI الأسرار الثنائية في متغيرات البيئة بالطريقة نفسها. - قواعد البيانات والشيفرة المصدرية. يمكن تخزين ملف ثنائي صغير، مثل خط أو صوت أو بيانات اختبار، في عمود نصي أو ثابت نصي بدلًا من ملف منفصل.
أما للصور، فتضيف أداة تحويل الصور إلى Base64 إمكانية تغيير الحجم ومقتطفات HTML وCSS جاهزة. ولإعادة Base64 إلى ملف، استخدم تحويل Base64 إلى ملف.
Base64 خام أم data URI؟
Base64 الخام هو البايتات المرمّزة فقط. وهو ما تتوقعه واجهات API وKubernetes وقواعد البيانات ومعظم المكتبات البرمجية، وعادةً ما يرافقه حقل منفصل لاسم الملف أو نوع المحتوى.
أما data URI فيضيف بادئة تتضمن نوع MIME، مثل data:application/pdf;base64,، ليتمكن المتصفح من استخدام السلسلة كاملة كعنوان URL في src أو href أو url() في CSS. لا ترسل هذه البادئة إلى واجهة API تطلب Base64 عاديًا، فكثير من أدوات فك الترميز ترفضها. ولتحديد نوع MIME بنفسك أو استخدام ترميز النسبة المئوية، جرّب مولّد Data URI.
أبقِ التفاف الأسطر معطّلًا عند الاستخدام في JSON وYAML والشيفرة المصدرية. فلا يمكن لسلسلة JSON أن تحتوي على فواصل أسطر خام، والقيم الملفوفة في YAML تتعطل بسهولة.
ترميز ملف من سطر الأوامر
# Linux (GNU coreutils): الخيار -w 0 يعطّل الالتفاف الافتراضي عند 76 حرفًا
base64 -w 0 report.docx > report.txt
# macOS
base64 -i report.docx -o report.txt
# Windows PowerShell
[Convert]::ToBase64String([IO.File]::ReadAllBytes("C:\files\report.docx"))
# يتولى Kubernetes ترميز الملف نيابةً عنك
kubectl create secret generic app-cert --from-file=tls.crt
الأسئلة الشائعة
هل هناك حد لحجم الملف؟
يمكن ترميز ملفات يصل حجمها إلى 100 ميغابايت. وتكون المخرجات أكبر بنحو الثلث، فيُنتج ملف بحجم 100 ميغابايت نحو 133 ميغابايت من النص. وقد يؤدي عرض هذا القدر من النص إلى إبطاء الصفحة، لذا استخدم «تنزيل» مع الملفات الكبيرة بدلًا من النسخ من مربع المخرجات.
هل تُرفع ملفاتي إلى خادم؟
لا. تقرأ شيفرة JavaScript في متصفحك الملف وترمّزه، ولا يُرسل أي شيء عبر الشبكة، لذا تبقى الشهادات والمفاتيح والمستندات الخاصة على جهازك.
هل يضغط Base64 الملف أو يشفّره؟
لا هذا ولا ذاك. يجعل Base64 البيانات أكبر بنحو 33%، ويستطيع أي شخص فك ترميزها. فإذا كان الملف سريًا فشفّره قبل الترميز، وإذا كان الحجم مهمًا فاضغطه أولًا، كأرشيف ZIP أو gzip مثلًا.
لماذا تحتوي المخرجات على فواصل أسطر؟
لأن خيار «التفاف الأسطر عند 76 حرفًا» مفعّل. فهو يطابق صيغة MIME المستخدمة في البريد الإلكتروني، لكن معظم واجهات API ومستندات JSON وملفات بيان Kubernetes تتوقع سطرًا واحدًا متصلًا، لذا عطّله عند الاستخدام فيها.