فك ترميز كلمة بسيطة
SGVsbG8gV29ybGQ=
Hello World
علامة = في النهاية هي حشو، لأن Hello World يساوي 11 بايتًا وهو ليس من مضاعفات 3. عملية فك الترميز تتعامل معها وتزيلها دائمًا بشكل صحيح.
رمّز أو فكّ ترميز سلاسل وملفات Base64 فورًا.
Last updated
Base64 هو نظام ترميز يمثّل البيانات الثنائية باستخدام 64 رمزًا قابلًا للطباعة. يلجأ إليه المطورون كلما احتاج نظام يتعامل مع النصوص فقط أن ينقل بايتات: صور صغيرة مضمّنة داخل HTML، توكنات، مرفقات بريد، data URLs، أسرار قابلة للنسخ في السجلات، وحقول JSON تخزّن بيانات ثنائية.
Base64 *ترميز* وليس *تشفير*. فك ترميز أي سلسلة Base64 يكشف محتواها الأصلي على الفور تقريبًا، لذا لا يصحّ الاعتماد عليه كحاجز أمني. أي شيء داخل Base64 يُعدّ مكشوفًا فعليًا ما لم يكن قد شُفّر *قبل* ترميزه.
تحت الغطاء، يأخذ Base64 كل 3 بايتات (24 بِت) ويعيد كتابتها كأربعة رموز من أبجدية ثابتة من 64 رمزًا (A–Z، a–z، 0–9، +، /). وحين لا يكون طول المدخل من مضاعفات الـ3، يُضيف المُرمِّز رمز = أو رمزين في النهاية كحشو (padding). ولهذا تنتهي سلاسل Base64 كثيرًا بعلامة =.
= تُكمل المجموعة الأخيرة المؤلفة من 4 رموز، ووجودها أمر طبيعي في كثير من سلاسل Base64.اختر الترميز إذا كان لديك نص عادي أو ملف وتريد إخراج Base64. واختر فك الترميز إذا كانت لديك سلسلة Base64 وتريد استرجاع المحتوى الأصلي.
الصق سلسلة نصية في صندوق النص، أو اسحب ملفًا (صورة، PDF، أي شيء) إلى منطقة الإفلات. تُحوَّل الملفات إلى رابط data: جاهز للتضمين داخل HTML أو CSS.
خرج الترميز هو سلسلة Base64. أمّا خرج فك الترميز فهو النص الأصلي — أو إذا كان المدخل ملفًا، فالبايتات المُستردّة تظهر على شكل رابط للتنزيل.
اضغط زر النسخ لوضع الناتج في الحافظة. كل شيء يجري داخل متصفحك، فالمدخل لا يغادر جهازك.
العناصر التي ستصادفها باستمرار عند العمل مع Base64 — كما هي معرَّفة في RFC 4648.
| العنصر | المعنى | مثال |
|---|---|---|
| الأبجدية | الرموز الـ64 المستخدمة في Base64 القياسية | A–Z, a–z, 0–9, +, / |
| الأبجدية الآمنة للروابط | تستخدمها JWT والروابط | A–Z, a–z, 0–9, -, _ |
| الحشو (Padding) | يُكمل المجموعة الأخيرة عندما لا يكون الطول من مضاعفات 3 | = أو == |
| حجم المجموعة | البايتات في كل دفعة مُرمَّزة ← 4 رموز خرج | 3 بايت ← 4 رموز |
| نمو الطول | الخرج أكبر من الدخل بحوالي 33% | 100 بايت ← 136 رمزًا |
| Data URL | تضمين ملف داخل HTML/CSS مباشرة | data:image/png;base64,... |
SGVsbG8gV29ybGQ=
Hello World
علامة = في النهاية هي حشو، لأن Hello World يساوي 11 بايتًا وهو ليس من مضاعفات 3. عملية فك الترميز تتعامل معها وتزيلها دائمًا بشكل صحيح.
{"role":"student","active":true}eyJyb2xlIjoic3R1ZGVudCIsImFjdGl2ZSI6dHJ1ZX0=
توكنات JWT تُرمِّز كل قسم منها بهذه الطريقة تمامًا — ولهذا تبدأ حمولات JWT عادةً بـ eyJ، وهي صيغة Base64 لـ {".
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNgAAIAAAUAAen8GVAAAAAASUVORK5CYII=
البادئة تُعلن عن نوع الوسائط (image/png) وطريقة الترميز (base64). وكل ما بعد الفاصلة هو محتوى الملف. مفيد جدًا للصور الصغيرة التي تُحمَّل مع الصفحة دون طلب شبكي إضافي.
Pj4/Pyc+Pg==
Pj4_Pyc-Pg
النسخة الآمنة للروابط من Base64 تستبدل + بـ - و / بـ _، حتى تصبح القيمة قابلة للوضع داخل رابط بدون أي escape إضافي. وهذه هي الصيغة التي تستعملها JWT.
= يدويًا ثم تمرير الناتج إلى مفكِّك صارم يتطلّبها. (المفكِّكات الآمنة للروابط تتسامح غالبًا مع غياب الحشو، أمّا المفكِّكات القياسية فقد لا تفعل.)= أو رمزان كحشو.atob() في المتصفحات، و Buffer.from(str, 'base64') في Node.js، و base64.b64decode() في Python.=؟= هي حشو. يُخرج Base64 أربعة رموز مقابل كل ثلاث بايتات من المدخل. وحين لا يكون طول المدخل من مضاعفات الـ3، تُضاف علامة = واحدة أو اثنتان حتى يبقى طول الناتج من مضاعفات الـ4.data:image/png;base64,...، فتُضمَّن الصورة مباشرة في HTML أو CSS أو JSON دون الحاجة إلى طلب شبكي مستقل.