الاتصال عبر MCP →

أدخل الحساب

صيغة رياضية

اعلان

نتائج

النص بعد فك الترميز
Hello World
البايتات الناتجة ١١
أحرف الإدخال (بدون مسافات) ١٦
أحرف الحشو ١

ما هي أداة فك ترميز Base64؟

إن Base64 هو نظام ترميز يمثّل البيانات الثنائية باستخدام 64 حرفًا قابلًا للطباعة من مجموعة ASCII (الأحرف من A إلى Z، ومن a إلى z، والأرقام من 0 إلى 9، إضافةً إلى الرمزين + و /). ويُستخدم على نطاق واسع لتضمين الصور داخل صفحات HTML، ونقل البيانات عبر JSON أو روابط URL، وترميز مرفقات البريد الإلكتروني. تقوم هذه الأداة بعكس هذه العملية، أي إعادة سلسلة Base64 إلى النص الأصلي الذي كانت تمثّله.

كيفية الاستخدام

الصق سلسلة Base64 أو اكتبها في خانة الإدخال ثم انقر للتأكيد. ستزيل الأداة أي مسافات بيضاء، وتفك ترميز الأحرف، وتعرض لك النص الناتج إلى جانب عدد البايتات التي تم فك ترميزها، وعدد أحرف الإدخال، وعدد أحرف الحشو ('=') الموجودة. وإذا احتوى الإدخال على أحرف خارج أبجدية Base64، فستظهر لك رسالة تفيد بأن الإدخال "غير صالح".

شرح الصيغة الحسابية

يمثّل كل حرف من أحرف Base64 ستة بتات (bits) من البيانات. وبالتالي فإن أربعة أحرف من Base64 تحمل \(4 \times 6 = 24\) بت، تُعاد جمعها بدقة في ثلاثة بايتات بحجم 8 بتات لكل منها. وعندما لا يكون طول البيانات الأصلية من مضاعفات الرقم 3، يُضاف حرف أو حرفان من حروف الحشو '=' حتى يصبح طول السلسلة المُرمّزة دائمًا من مضاعفات الرقم 4. وأثناء فك الترميز، تُزال أحرف الحشو وتُهمَل البتات المتبقية.

$$\text{Bytes} = \left\lfloor \frac{6 \times \text{Base64 chars (no padding)}}{8} \right\rfloor$$
أربعة رموز Base64 بسعة 6 بت لكل منها أُعيد تجميعها في ثلاثة بايتات بسعة 8 بت
تحمل أربعة رموز Base64 أربعة وعشرين بت، يُعاد تجميعها في ثلاثة بايتات مفكوكة.

مثال تطبيقي

لنأخذ سلسلة Base64 التالية: SGk=. تتحوّل الأحرف إلى القيم التالية: \(S=18\)، و\(G=6\)، و\(k=36\)، أما '=' فهو حرف حشو. وبالنظام الثنائي تصبح: \(010010\ 000110\ 100100\) ← أي 24 بت، لكن وجود حرف الحشو في النهاية يعني أن بايتين فقط صالحان: \(01001000\) (\(72 = \text{'H'}\)) و\(01101001\) (\(105 = \text{'i'}\)). فتكون النتيجة Hi.

مخطط يوضح تحويل سلسلة Base64 عبر البتات إلى نص عادي
يحوّل المفكّك سلسلة Base64 مرة أخرى إلى النص الأصلي العادي.

مرجع أبجدية Base64

يقوم Base64 القياسي (RFC 4648) بتعيين كل قيمة 6 بت (0–63) إلى أحد 64 حرفًا ASCII قابلاً للطباعة. يقرأ جهاز فك التشفير كل حرف، ويبحث عن فهرس 6 البت الخاص به في هذا الجدول، ويسلسل البتات معًا، ويعيد تجميعها إلى بايتات 8 بت. يوضح الجدول أدناه الأبجدية الكاملة والفهرس المخصص لكل حرف.

الفهرس الحرف الفهرس الحرف الفهرس الحرف الفهرس الحرف
0 A 16 Q 32 g 48 w
1 B 17 R 33 h 49 x
2 C 18 S 34 i 50 y
3 D 19 T 35 j 51 z
4 E 20 U 36 k 52 0
5 F 21 V 37 l 53 1
6 G 22 W 38 m 54 2
7 H 23 X 39 n 55 3
8 I 24 Y 40 o 56 4
9 J 25 Z 41 p 57 5
10 K 26 a 42 q 58 6
11 L 27 b 43 r 59 7
12 M 28 c 44 s 60 8
13 N 29 d 45 t 61 9
14 O 30 e 46 u 62 +
15 P 31 f 47 v 63 /

الرمز الخامس والستون، = (علامة المساواة)، ليس حرف بيانات. إنه علامة الحشو المستخدمة في نهاية السلسلة المشفرة بحيث يكون الطول الإجمالي دائمًا مضاعفًا لـ 4 أحرف. = واحدة تعني أن مجموعة الأربعة أحرف النهائية تشفر 2 بايت؛ == اثنان يعني أنها تشفر 1 بايت. يتجاهل جهاز فك التشفير الحشو والبتات الصفرية الإضافية التي يتضمنها.

أمثلة فك تشفير إضافية

يساهم كل حرف Base64 بـ 6 بتات. تفك أربعة أحرف (24 بت) بالضبط إلى 3 بايتات؛ تستخدم المجموعات الجزئية الحشو بحيث يعرف جهاز فك التشفير عدد البايتات المراد الاحتفاظ بها. يتبع عدد البايتات الصيغة \(\text{البايتات} = \left\lfloor \frac{6 \times n}{8} \right\rfloor\)، حيث \(n\) هو عدد الأحرف الحقيقية (غير الحشو).

المثال 1 — بدون حشو: "TWFu" → "Man"

  1. الفهارس: T=19, W=22, F=5, u=46.
  2. مجموعات 6 بت: 010011 010110 000101 101110.
  3. إعادة تجميع إلى بايتات: 01001101 01100001 01101110 = 77, 97, 110.
  4. ASCII 77, 97, 110 = M, a, n. مع \(n=4\): \(\lfloor 24/8 \rfloor = 3\) بايتات — Man.

المثال 2 — حشو '=' واحد: "SGVsbG8=" → "Hello"

  1. حذف الحشو: 7 أحرف حقيقية S,G,V,s,b,G,8.
  2. الفهارس: S=18, G=6, V=21, s=44, b=27, G=6, 8=60.
  3. البتات: 010010 000110 010101 101100 011011 000110 111100 (البتات الزائدة من مجموعة الحشو هي 2 بت من الحشو الصفري ويتم تجاهلها).
  4. البايتات: 01001000 01100101 01101100 01101100 01101111 = 72, 101, 108, 108, 111 = H, e, l, l, o.
  5. مع \(n=7\): \(\lfloor 42/8 \rfloor = 5\) بايتات — Hello.

المثال 3 — حشو '==' مزدوج: "aGk="... و "TQ==" → "M"

  1. حذف الحشو: أحرف حقيقية 2 T, Q.
  2. الفهارس: T=19, Q=16.
  3. البتات: 010011 010000؛ احفظ فقط أول 8 بتات، البقية 4 هي حشو صفري.
  4. البايت: 01001101 = 77 = M.
  5. مع \(n=2\): \(\lfloor 12/8 \rfloor = 1\) بايت — M.

للذهاب في الاتجاه الآخر وإنتاج هذه السلاسل من النص، استخدم مشفر Base64.

المصطلحات الرئيسية

أبجدية Base64
المجموعة الثابتة من 64 حرفًا قابلاً للطباعة (A–Z, a–z, 0–9, + و /) المستخدمة لتمثيل البيانات الثنائية كنص. يمثل كل حرف قيمة 6 بت من 0 إلى 63.
الحشو ('=')
علامة المساواة المُلحقة في نهاية السلسلة المشفرة بحيث يكون طولها مضاعفًا لـ 4 أحرف. لا تحمل أي بيانات؛ '=' واحدة تعلم مجموعة نهائية 2 بايت و '==' تعلم مجموعة نهائية 1 بايت.
السادسة (6 بت)
مجموعة من 6 بتات — الوحدة التي يشفرها حرف Base64 واحد. تتوافق أربع سادسات (24 بت) بالضبط مع ثلاث بايتات.
الثمانية / البايت (8 بت)
وحدة 8 بت، الحجم القياسي لبايت واحد من البيانات المفكوكة. يعيد فك تشفير Base64 تجميع السادسات إلى بايتات، وهو ما يمكن لـ محول Binary to Text أن يوضحه أيضًا بت بعد بت.
تجريد المسافات البيضاء
إزالة المسافات والتبويبات وفواصل الأسطر قبل فك التشفير. تدرج العديد من الأنظمة أسطرًا جديدة في Base64 الطويل (على سبيل المثال شهادات PEM، بريد MIME)؛ يتجاهل جهاز فك التشفير القوي هذه المسافات البيضاء بدلاً من معاملتها كبيانات.
Base64 آمن للعناوين
متغير (RFC 4648 §5) يستبدل + بـ - و / بـ _ بحيث تكون السلسلة آمنة في العناوين وأسماء الملفات. غالبًا ما يتم حذف الحشو أيضًا. قم بتحويل هذه الأحرف مرة أخرى إلى + و / قبل استخدام جهاز فك تشفير قياسي؛ بالنسبة للعنوان المحيط نفسه، راجع حاسبة تشفير / فك تشفير العنوان.

الأسئلة الشائعة

هل تُرسَل بياناتي إلى أي جهة؟ تُنفَّذ عملية فك الترميز على الخادم لعرض النتيجة، لكن لا يُخزَّن أي إدخال. ومع ذلك، يُفضَّل تجنّب لصق أي معلومات سرية.

لماذا لا يقبل عدد البايتات القسمة على 4؟ يشير عدد البايتات إلى البايتات الناتجة بعد فك الترميز، وليس إلى أحرف الإدخال. فكل 4 أحرف إدخال تتحوّل إلى ما يصل إلى 3 بايتات ناتجة.

ماذا يعني الحشو (Padding)؟ وجود علامة '=' واحدة يعني أن المجموعة الأخيرة أنتجت بايتين، أما وجود علامتين '==' فيعني أنها أنتجت بايتًا واحدًا. وغياب الحشو يعني أن طول البيانات كان أصلًا من مضاعفات الرقم 3.

آخر تحديث: