طريقة الاستخدام
- ألصق نصك في النص أو Base64.
- اختر ترميز النص إلى Base64 أو فكّ Base64 إلى نص في الإجراء.
- ضع علامة على أبجدية آمنة للروابط إذا كان الرمز سيدخل في عنوان ويب أو اسم ملف.
- استعمل زر النسخ في مربع النتيجة، أو نزّلها ملفاً نصياً.
كيف يعمل Base64
يكتب Base64 البايتات نصاً يستعمل 64 حرفاً فقط، وهي آمنة في كل نظام تقريباً. كل ثلاثة بايتات، أي 24 خانة، تصبح أربعة حروف من ست خانات لكل منها. وإذا كانت المجموعة الأخيرة بايتاً أو بايتين، انتهى الرمز بعلامة أو علامتين من =، وتسمى الحشو.
والناتج أطول دائماً من المدخل بنحو الثلث، لأن ثلاثة بايتات تصبح أربعة حروف.
طول الرمز مع الحشو = 4 × ⌈n ÷ 3⌉ حرفاً
n عدد بايتات المدخل
⌈ ⌉ التقريب إلى أعلى عدد صحيح
النص وUTF-8 والأبجديتان
يعمل Base64 على البايتات، لذلك يُكتب النص أولاً بترميز UTF-8، وهو الترميز الذي تستعمله صفحات الويب ومعظم الملفات. الحرف العربي يأخذ بايتين، والرمز التعبيري يأخذ أربعة.
- الأبجدية القياسية (RFC 4648، القسم 4): من A إلى Z، ومن a إلى z، والأرقام من 0 إلى 9، و+ و/، مع حشو = في النهاية.
- أبجدية آمنة للروابط وأسماء الملفات (RFC 4648، القسم 5): - و_ بدل + و/. وهذا الوضع يحذف الحشو.
- يقبل فكّ الترميز الأبجديتين معاً، والرمز الذي لا حشو فيه، وفواصل الأسطر.
ما يرفضه فكّ الترميز
- حروف ليست في أي من الأبجديتين، مثل ! أو %.
- طول لا يمكن أن يكون لرمز Base64، مثل خمسة حروف بعد المجموعات الرباعية.
- بايتات ليست UTF-8 صالحاً. فرمز Base64 لصورة يُفكّ إلى بايتات ليست نصاً، وتقول الصفحة ذلك بدلاً من عرض رموز عشوائية.
Base64 ليس تشفيراً
Base64 طريقة لكتابة البايتات نصاً، وليس سراً. يستطيع أي شخص فكّه، فلا تستعمله لإخفاء كلمة مرور أو مفتاح. يتم التحويل في هذا المتصفح وحده، ولا يُرسل النص إلينا.
مثال محلول: مرحبا بالعالم
النص ”مرحبا بالعالم“ يحتوي 13 حرفاً مع المسافة، وكل حرف عربي يأخذ بايتين في UTF-8، فيكون عدد بايتاته 25. والطول مع الحشو 4 × ⌈25 ÷ 3⌉ = 36 حرفاً.
بالأبجدية القياسية تكون النتيجة 2YXYsdit2KjYpyDYqNin2YTYudin2YTZhQ==. وإذا وُضعت علامة على الأبجدية الآمنة للروابط، يصبح الرمز نفسه بلا حشو: 2YXYsdit2KjYpyDYqNin2YTYudin2YTZhQ، أي 34 حرفاً.
| القياسية | الآمنة للروابط | |
|---|---|---|
| النتيجة | 2YXYsdit2KjYpyDYqNin2YTYudin2YTZhQ== | 2YXYsdit2KjYpyDYqNin2YTYudin2YTZhQ |
| الطول | 36 | 34 |
الأسئلة الشائعة
ما استعمالات Base64؟
يحمل بيانات ثنائية، مثل الصور والملفات والرموز، عبر أنظمة لا تقبل إلا النص، مثل مرفقات البريد الإلكتروني وحقول JSON وروابط data. والرمز أطول من الأصل بنحو الثلث.
هل Base64 هو التشفير نفسه؟
لا. Base64 طريقة قابلة للعكس لكتابة البايتات، ويستطيع أي شخص فكّها بلا مفتاح. احمِ البيانات بتشفير حقيقي، لا بترميز Base64.
لماذا تظهر حروف غريبة بعد فكّ الترميز؟
غالباً لأن البايتات ليست بترميز UTF-8. فالنص حُفظ بترميز أقدم، مثل Windows-1256 للعربية. وترفض الصفحة البايتات التي ليست UTF-8 بدلاً من عرضها بشكل خاطئ.
ما الأبجدية الآمنة للروابط؟
تستبدل الوثيقة RFC 4648 في القسم 5 الرمز + بالرمز -، والرمز / بالرمز _، فيستطيع الرمز أن يقع في عنوان ويب أو اسم ملف دون ترميز إضافي. ويُكتب هنا بلا حشو =.
هل تُرسل أداة الترميز نصي إلى خادم؟
لا. يعمل الترميز وفكّه داخل متصفحك. لا يُرسل شيء ولا يُخزَّن ولا يُسجَّل، فيمكنك لصق بيانات خاصة.
هل أستطيع فكّ صورة Base64 هنا؟
تقرأ الصفحة Base64 نصاً، فتُفكّ الصورة إلى بايتات ليست نصاً فتُرفض. ولعرض صورة، ضع رابط بياناتها الكامل، الذي يبدأ بالعبارة data:image ونوعها، في شريط العنوان في متصفحك.
المصادر
- RFC 4648: The Base16, Base32, and Base64 Data Encodings (باللغة الإنجليزية، IETF)
- RFC 3629: UTF-8، صيغة تحويل من ISO 10646 (باللغة الإنجليزية، IETF)
آخر مراجعة للأرقام والنص: الثلاثاء، 30 جمادى الأولى 1448 بعد الهجرة.