أداة تشفير وفك تشفير Base64 - أداة تحويل Base64 مجانية عبر الإنترنت
أداة مجانية لتشفير وفك تشفير Base64. قم بتحويل النص إلى Base64 أو فك تشفير سلاسل Base64 على الفور. يدعم الترميز القياسي والآمن للرابط. لا يتطلب تسجيل دخول.
مُرمِّز/فاك مُرمَّز Base64
تحويل النص إلى وِمن ترميز Base64
التوثيق
ما هو ترميز Base64؟
Base64 طريقة لتحويل أي بيانات، بما في ذلك البيانات الثنائية مثل الصور، إلى نص عادي يتكوّن من أحرف وأرقام وبضعة رموز فقط. يحوّل مُرمِّز base64 البيانات إلى هذا الشكل النصي. ويعيد فك ترميز base64 البيانات إلى شكلها الأصلي. تستخدم البرامج Base64 لنقل البيانات الثنائية بأمان عبر أنظمة، مثل البريد الإلكتروني أو JSON، التي تتوقع نصًا عاديًا.
يستخدم Base64 أبجديةً تضم 64 محرفًا:
- الأحرف اللاتينية الكبيرة A–Z (26 محرفًا)
- الأحرف اللاتينية الصغيرة a–z (26 محرفًا)
- الأرقام 0–9 (10 محارف)
- رمزان، عادةً
+و/(2 من المحارف)
تستخدم بعض الأنظمة أيضًا علامة المساواة (=) في نهاية الناتج بوصفها حشوًا. لا يُعد الحشو جزءًا من الأبجدية المكوّنة من 64 محرفًا؛ بل يكمّل الطول فحسب.
لماذا يوجد Base64
بُنيت بروتوكولات نصية أقدم كثيرة، منها البريد الإلكتروني (SMTP) وبعض أجزاء HTTP، لحمل نص ASCII ذي 7 بت. وقد تُفسد هذه البروتوكولات البايتات الثنائية الخام، مثل البايتات الموجودة داخل صورة JPEG. يتجنب Base64 ذلك بتمثيل كل بايت باستخدام محارف آمنة قابلة للطباعة فقط. ولهذا تمر مرفقات البريد الإلكتروني والصور المضمّنة في صفحات الويب والحقول الثنائية داخل JSON عادةً عبر Base64 أولًا.
لا يُعد Base64 ضغطًا ولا تشفيرًا. يكون الناتج المرمّز دائمًا أكبر من المُدخل، ويمكن لأي شخص فك ترميزه من دون كلمة مرور أو مفتاح.
كيفية استخدام هذه الأداة
- اكتب النص أو الصقه في مربع الإدخال.
- اختر "Encode to Base64" لتحويل النص إلى Base64، أو "Decode from Base64" لإعادة سلسلة Base64 إلى نص.
- فعّل التحويل المباشر لتحديث الناتج تلقائيًا أثناء الكتابة.
- انسخ النتيجة باستخدام زر النسخ.
تقرأ الأداة النص المعياري بترميز Unicode وتكتبه، لذلك تُرمَّز الأحرف ذات العلامات والرموز والرموز التعبيرية وتُفك ترميزها بصورة صحيحة، وليس الأحرف الإنجليزية العادية فقط.
كيفية عمل ترميز Base64
يحوّل Base64 كل 3 بايت من المُدخل (24 بت) إلى 4 محارف ناتجة (يحمل كل منها 6 بت)، لأن قسمة 24 على 6 تساوي 4.
- خذ بايتات الإدخال واكتبها بالصيغة الثنائية.
- جمّع البتات في مجموعات من 24 بت (3 بايتات).
- قسّم كل مجموعة من 24 بت إلى أربع قطع، يتكوّن كل منها من 6 بت.
- ابحث عن كل رقم مكوّن من 6 بت (من 0 إلى 63) في أبجدية Base64، واكتب المحرف المطابق.
إذا لم يكن طول المُدخل من مضاعفات 3، فستكون المجموعة الأخيرة ناقصة. يضيف المُرمِّز إليها بتات صفرية للحشو، ثم يضيف محارف = إلى الناتج بحيث يظل الناتج في مجموعات من 4:
- ينتج عن بايت واحد متبقٍّ 2 من محارف Base64 بالإضافة إلى
==. - ينتج عن بايتين متبقيين 3 محارف Base64 بالإضافة إلى محرف
=واحد.
مثال على ترميز Base64
ترميز الكلمة "Hello":
- قيم ASCII: 72، 101، 108، 108، 111
- ثنائي:
01001000 01100101 01101100 01101100 01101111 - تُقسَّم أول 3 بايتات (24 بت) إلى أربع مجموعات، تتكوّن كل منها من 6 بت:
010010 000110 010101 101100، وهي الأرقام 18 و6 و21 و44 ← المحارفSوGوVوs. - تُقسَّم البايتات المتبقية وعددها 2 (16 بت) إلى ثلاث مجموعات، تتكوّن كل منها من 6 بت، مع إضافة 2 من البتات الصفرية في النهاية:
011011 000110 111100، وهي الأرقام 27 و6 و60 ← المحارفbوGو8. - بما أن عدد البايتات المتبقية 2، تُضاف علامة
=واحدة في النهاية. - النتيجة:
SGVsbG8=
يعكس فك الترميز هذه الخطوات: يُحوَّل كل محرف مرة أخرى إلى رقمه المكوّن من 6 بت، ثم تُضم البتات في دفق، ويُقرأ هذا الدفق مجددًا في بايتات من 8 بت.
صيغة طول النص المرمّز بـ Base64
بالنسبة إلى مُدخل يتكوّن من n بايت، يكون طول النص المرمّز بالمحارف:
encoded_length = 4 × ⌈n / 3⌉
حيث تعني ⌈x⌉ التقريب إلى أعلى عدد صحيح. توضّح هذه الصيغة سبب كون ناتج Base64 أكبر دائمًا من المُدخل بنحو الثلث: إذ ينتج 4 محارف لكل 3 بايتات مُدخلة، أي زيادة قدرها 33%.
استخدامات Base64
- مرفقات البريد الإلكتروني (MIME). صُمّم البريد الإلكتروني للنصوص، لذلك تُحوَّل مرفقات الملفات إلى Base64 قبل إرسالها، ما يجعل الملف المرفق أكبر بنحو 33% من حجمه الأصلي.
- معرّفات الموارد الموحّدة للبيانات. يمكن تضمين الصور الصغيرة مباشرةً داخل HTML أو CSS في صورة نص، مثل
data:image/png;base64,iVBORw0KGgo...، مما يلغي طلب ملف منفصل. ويناسب ذلك الملفات الصغيرة، لأن الملفات الكبيرة تزيد حجم الصفحة ولا يمكن تخزينها مؤقتًا بصورة منفصلة. - واجهات API وJSON. لا يوفّر JSON طريقة أصلية لحمل البيانات الثنائية الخام، لذلك غالبًا ما تُرمَّز الملفات الثنائية المرسلة عبر واجهة API تعتمد JSON باستخدام Base64 أولًا.
- مصادقة HTTP الأساسية. يرمّز الرأس
Authorizationاسم المستخدم وكلمة المرور باستخدام Base64، مثلAuthorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=. وهذا ليس آمنًا بحد ذاته؛ إذ يمكن لأي شخص يعترض بيانات الاعتماد قراءتها، لذلك لا ينبغي استخدام المصادقة الأساسية إلا عبر HTTPS. - رموز الويب JSON (JWT). يُرمَّز كل جزء من الأجزاء الثلاثة في JWT باستخدام Base64URL، وهو صيغة بديلة آمنة للاستخدام داخل عنوان URL.
- تخزين البيانات الثنائية كنص. تحتفظ قواعد البيانات أو ملفات الإعدادات التي لا تقبل إلا النصوص أحيانًا بالبيانات الثنائية في صورة سلسلة Base64.
مقارنة Base64 بترميزات أخرى
Base64 الآمن لعناوين URL يستبدل المحرفين القياسيين + و/ بالمحرفين - و_، لأن + و/ لهما معنى خاص داخل عنوان URL. ويُستخدم مع JWT ومعلمات الاستعلام في عناوين URL وأسماء الملفات. تنتج هذه الأداة ناتج Base64 قياسيًا؛ ولا يتطلب تحويله إلى الصيغة الآمنة لعناوين URL سوى استبدال هذين المحرفين.
Base32 يستخدم أبجدية من 32 محرفًا، لذلك يحمل كل محرف 5 بت بدلًا من 6. ويحوّل كل 5 بايتات إلى 8 محارف، مع زيادة قدرها 60% (8 ÷ 5 = 1.6)، مقارنةً بزيادة قدرها 33% في Base64. ويُختار Base32 عندما يلزم إدخال الناتج يدويًا أو قراءته عبر الهاتف، لأنه يتجنب الأحرف الكبيرة والصغيرة المختلطة والمحارف التي يسهل الخلط بينها.
النظام السداسي عشري يستخدم 16 محرفًا (0–9 وA–F) ويحتاج إلى 2 من المحارف لكل بايت، مما يضاعف الحجم (زيادة قدرها 100%). ويشيع استخدامه لعرض قيم التجزئة والألوان وعناوين MAC، حيث تكون سهولة القراءة أهم من صغر الحجم.
متى لا ينبغي استخدام Base64
يضيف Base64 حجمًا وكلفةً على المعالج، لذلك لا يناسب الملفات الكبيرة المرسلة عبر شبكة؛ فإرسال البيانات الثنائية الخام مباشرةً يكون أقل حجمًا وأسرع. ولا ينبغي أبدًا الاعتماد عليه لإخفاء معلومات حساسة مثل كلمات المرور أو مفاتيح API، إذ لا يتطلب فك ترميزه أي سر. ولتخزين الملفات الكبيرة، يكون نوع العمود الثنائي في قاعدة البيانات أو خدمة تخزين الملفات عادةً أفضل من سلسلة Base64 طويلة في حقل نصي.
الأخطاء الشائعة
- تخطّي تحويل UTF-8. قد يؤدي ترميز النصوص التي تحتوي على أحرف ذات علامات أو رموز تعبيرية من دون تحويلها أولًا إلى بايتات UTF-8 إلى إفساد الناتج.
- إزالة الحشو. تزيل بعض الأنظمة محارف
=اللاحقة. ولا يزال بإمكان معظم برامج فك الترميز العمل إذا أُعيد إكمال طول السلسلة إلى مضاعف 4، لكن بعضها لا يقبل ذلك، لذا من الأسلم الإبقاء على الحشو. - فواصل الأسطر المتبقية. تُدرج المُرمِّزات الأقدم المعتمدة على MIME فاصل سطر كل 76 محرفًا؛ وتتوقع معظم برامج فك الترميز الحديثة سلسلة متصلة واحدة من دون هذه الفواصل.
- الخلط بين الصيغ البديلة. يستخدم Base64 القياسي وBase64 الآمن لعناوين URL محارف مختلفة للموقعين نفسيهما في الأبجدية؛ ويؤدي فك الترميز باستخدام الصيغة البديلة الخاطئة إلى ناتج غير مفهوم أو إلى حدوث خطأ.
الأسئلة الشائعة
هل يُعد Base64 نوعًا من التشفير؟ لا. إنه ترميز نصي قابل للعكس، وليس تشفيرًا. يمكن لأي شخص فك ترميز سلسلة Base64 فورًا من دون كلمة مرور. استخدم خوارزمية تشفير مثل AES إذا كان من الضروري إبقاء البيانات سرية.
لماذا يجعل Base64 البيانات أكبر؟ لأنه يخصص محرفًا كاملًا لحمل 6 بت فقط، بينما يحمل البايت الخام 8 بت. ويعني تحويل 3 بايتات (24 بت) إلى 4 محارف أن الناتج يساوي 4/3، أي أكبر من المُدخل بنحو 33%.
هل يمكن لـ Base64 ترميز الصور والملفات الثنائية الأخرى؟ نعم. يمكن ترميز أي ملف ثنائي، بما في ذلك الصور وملفات PDF والملفات الصوتية، باستخدام Base64 ثم فك ترميزه مجددًا بايتًا مقابل بايت. ويُستخدم هذا عادةً للصور الصغيرة المضمّنة في HTML أو CSS، لكنه خيار غير مناسب للملفات الكبيرة.
ما الفرق بين Base64 وBase64URL؟
يستبدل Base64URL المحرفين القياسيين + و/ بالمحرفين - و_، ولذلك يكون الناتج آمنًا للاستخدام داخل عنوان URL أو اسم ملف من دون حاجة إلى تهريب إضافي. وتستخدم JWT صيغة Base64URL لهذا السبب.
لماذا تُظهر سلسلة Base64 الخاصة بي خطأ "غير صالح" عند فك ترميزها؟
الأسباب الأكثر شيوعًا هي وجود محارف لا تنتمي إلى أبجدية Base64، مثل - و_ المستخدمين في الصيغة الآمنة لعناوين URL، أو أن يكون طول السلسلة أكبر بمقدار واحد من مضاعف للعدد 4. ولا توجد سلسلة Base64 صالحة بهذا الطول. ويفشل فك الترميز أيضًا عندما لا تكون البايتات الناتجة نص UTF-8 صالحًا. تتجاهل هذه الأداة المسافات وفواصل الأسطر داخل السلسلة، كما تفك ترميز السلسلة حتى إذا أزيل حشو = اللاحق.
من أين أتى Base64؟ تعود هذه التقنية إلى المخططات المبكرة لإرسال البيانات الثنائية عبر أنظمة البريد النصية فقط في عقد 1980، وقد وُحّدت رسميًا بوصفها جزءًا من MIME في RFC 2045 عام 1996. أما المواصفة المرجعية الحالية لـ Base64 وBase32 وBase16 فهي RFC 4648.