

بياناتك خاصة 100% -- يتم تشفير وفك تشفير Base64 بالكامل على جهازك مباشرة.
Base64 هو طريقة لتمثيل البيانات الثنائية كنص عادي باستخدام 64 حرفًا من ASCII: A–Z وa–z و0–9 إضافةً إلى + و/. يتيح نقل البيانات الثنائية كالصور والمفاتيح ومرفقات البريد الإلكتروني بأمان عبر الأنظمة المبنية للنصوص. وهو ترميز وليس تشفيرًا.
يستخدم Base64 أبجديةً ثابتةً من 64 حرفًا. كل قيمة من 0 إلى 63 تُعيَّن إلى حرف واحد بالضبط، وهذا ما يجعل كل 3 بايتات من البيانات الثنائية تتحول إلى 4 أحرف قابلة للقرا ءة:
| القيم | الأحرف | |
|---|---|---|
| 0–25 | A–Z | 26 حرفًا كبيرًا |
| 26–51 | a–z | 26 حرفًا صغيرًا |
| 52–61 | 0–9 | 10 أرقام |
| 62–63 | + / | رمزان |
الاستثناء الوحيد هو علامة "=". إنها حشو وليست إحدى القيم الـ 64، وتُستخدم فقط لإكمال الكتلة الأخيرة.
لقد صادفته على الأرجح من قبل. يظهر Base64 في كل مكان تحتاج فيه البيانات الثنائية إلى النقل داخل نص:
تبدو خدعة data-URI كالتالي. السلسلة الطويلة هي الصورة بأكملها:
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red dot" />بُنيت بروتوكولات الشبكات المبكرة للنصوص وليس للبايتات الخام. استخدم ASCII 7 بتات و128 حرفًا، وهو ما كان مناسبًا للغة الإنجليزية لكنه لم يكن كافيًا للبيانات الثنائية. كانت بعض الأنظمة تشوّه أحرف التحكم أو تعيد كتابة نهايات الأسطر (LF إلى CR + LF)، مما يُفسد الصور والصوت أثناء النقل بصمت.
يتجاوز Base64 كل ذلك بإصداره أحرفًا تتوافق عليها جميع الأنظمة دائمًا. يؤدي Base16 وBase32 المهمة ذاتها بأبجديات أصغر، لكن Base64 يحزم بيانات أكثر لكل حرف مع الحفاظ على الأمان. لهذا السبب انتشر.
يقوم المخطط بأكمله على فكرة واحدة تتكرر: خذ 3 بايتات (24 بتًا)، وأعد تقسيمها إلى أربع مجموعات من 6 بتات، وابحث عن كل مجموعة في الأبجدية. إليك كلمة "Logto" مرمَّزة يدويًا.
الخطوة 1. حوّل كل حرف إلى تمثيله الثنائي المؤلف من 8 بتات:
| الحرف | رمز ASCII | الثنائي |
|---|---|---|
| L | 76 | 01001100 |
| o | 111 | 01101111 |
| g | 103 | 01100111 |
| t | 116 | 01110100 |
| o | 111 | 01101111 |
الخطوة 2. خذ البايتات الثلاثة الأولى "Log"، وأعد تقسيم نفس الـ 24 بتًا إلى أربع مجموعات من 6 بتات:
الخطوة 3. اقرأ كل مجموعة من 6 بتات كرقم، ثم ابحث عن الرقم في الأبجدية:
| مجموعة 6 بتات | القيمة | حرف Base64 |
|---|---|---|
| 010011 | 19 | T |
| 000110 | 6 | G |
| 111101 | 61 | 9 |
| 100111 | 39 | n |
"Logto" مؤلفة من 5 بايتات وليست مضاعفًا للعدد 3. البايتان الأخيرتان "to" تتركان تقسيمًا 6 + 6 + 4. أكمل تلك الـ 4 بتات الأخيرة بأصفار لملء مجموعة من 6 بتات، ثم أضف "=" لاستكمال الكتلة المؤلفة من 4 أحرف:
اجمع الكتل معًا:
"Logto" → TG9ndG8=كل لغة برمجة تأتي بهذا مدمجًا. في Node.js:
const text = 'Logto';
const base64 = Buffer.from(text).toString('base64');
console.log(base64); // TG9ndG8=ثلاث قواعد تنبثق من هذه العملية، تجدر الإشارة إليها:
استخدم Base64 عندما تحتاج البيانات الثنائية إلى المرور عبر قناة نصية فقط:
ما ستحصل عليه في المقابل:
يعتمد Base64 القياسي على ثلاثة أحرف تتعارض مع آلية عمل روابط URL وسلاسل الاستعلام وأسماء الملفات: + و/ و= للحشو. ضع سلسلة Base64 عادية في رابط وقد تتعطل بطرق غير محسوسة:
يمكنك ترميزها بالنسبة المئوية (+ تصبح %2B، و/ تصبح %2F، و= تصبح %3D)، لكن ذلك يُضخّم السلسلة ويسهل الوقوع في خطأ الترميز المزدوج.
يحل Base64URL (RFC 4648 §5) هذا من المصدر: استبدل + بـ - واستبدل / بـ _ واحذف حشو =. النتيجة تندرج مباشرةً في URL أو معامل استعلام أو اسم ملف دون الحاجة إلى أي ترميز. ستجده في روابط URL وأسماء الملفات والعديد من واجهات برمجة التطبيقات على الويب.
const base64 = 'TG9ndG8=';
const urlSafe = base64.replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '');
console.log(urlSafe); // TG9ndG8Base64 هو تمثيل وليس حلًا سحريًا. ضع ثلاثة أمور في الاعتبار:
لا. إنه ترميز قابل للعكس بأبجدية عامة، لذا يمكن لأي شخص فك ترميزه فورًا ولا يُضيف أي سرية. قم بتشفير البيانات الحساسة عوضًا عن ذلك.
يحوّل Base64 كل 3 بايتات إلى 4 أحرف، لذا يكون الشكل المرمَّز دائمًا أكبر بحوالي ثلث حجم البايتات الأصلية.
إنها حشو يجعل الخرج مضاعفًا للعدد 4 أحرف. "=" واحدة تعني أن المدخل كان يحتوي على 2 بايت زيادة؛ "==" تعني أنه كان يحتوي على 1؛ وعدم وجود "=" يعني أن الطول كان بالفعل مضاعفًا للعدد 3 بايتات.
Base64URL هو نفس الترميز بأبجدية آمنة لروابط URL وأسماء الملفات: - و_ يحلان محل + و/، ويُحذف حشو = عادةً. وهو شائع في روابط URL وأسماء الملفات والعديد من واجهات برمجة التطبيقات على الويب.
أي بيانات ثنائية: صور وملفات PDF ومفاتيح وملفات تنفيذية. يعمل Base64 على البايتات الخام، لذا لا يهم نوع المحتوى الأصلي.
لا. يعمل الترميز وفك الترميز بالكامل في متصفحك. لا يُرفع أو يُسجَّل أي شيء تلصقه.