مُشَفِّر ومُفَكِّك قِيَاس بيس64: تحويل النص إلى/from بيس64

أداة مجانية عبر الإنترنت لترميز النص إلى بيس64 أو فك تشفير سلاسل بيس64 إلى نص. تدعم ترميز بيس64 القياسي والآمن للعنوان مع تحويل فوري.

مُشَفِّر/مُفَكِّك قاعدة64

📚

التوثيق

مشفر وفك تشفير Base64

مقدمة

Base64 هو نظام ترميز ثنائي إلى نص يمثل البيانات الثنائية في تنسيق سلسلة ASCII. تم تصميمه لنقل البيانات المخزنة في تنسيقات ثنائية عبر قنوات تدعم بشكل موثوق محتوى نصي فقط. يقوم ترميز Base64 بتحويل البيانات الثنائية إلى مجموعة من 64 حرفًا (ومن هنا جاء الاسم) يمكن نقلها بأمان عبر بروتوكولات قائمة على النص دون تلف البيانات.

يتكون مجموعة أحرف Base64 من:

  • الأحرف الكبيرة A-Z (26 حرفًا)
  • الأحرف الصغيرة a-z (26 حرفًا)
  • الأرقام 0-9 (10 أحرف)
  • حرفين إضافيين، عادةً "+" و "/" (2 حرف)

تتيح لك هذه الأداة بسهولة تشفير النص إلى تنسيق Base64 أو فك تشفير سلاسل Base64 مرة أخرى إلى نصها الأصلي. إنها مفيدة بشكل خاص للمطورين والمهنيين في تكنولوجيا المعلومات وأي شخص يعمل مع البيانات التي تحتاج إلى نقلها بأمان عبر قنوات قائمة على النص. مع ميزة التحويل في الوقت الفعلي، يمكنك رؤية النتائج على الفور أثناء الكتابة، مما يجعل سير العمل الخاص بك في التشفير وفك التشفير أكثر كفاءة.

كيف يعمل ترميز Base64

عملية التشفير

يعمل ترميز Base64 عن طريق تحويل كل مجموعة من ثلاثة بايت (24 بت) من البيانات الثنائية إلى أربعة أحرف Base64. تتبع العملية الخطوات التالية:

  1. تحويل النص المدخل إلى تمثيل ثنائي له (باستخدام ترميز ASCII أو UTF-8)
  2. تجميع البيانات الثنائية في قطع من 24 بت (3 بايت)
  3. تقسيم كل قطعة من 24 بت إلى أربع مجموعات من 6 بت
  4. تحويل كل مجموعة من 6 بت إلى حرف Base64 المقابل لها

عندما لا يكون طول المدخلات قابلاً للقسمة على 3، يتم إضافة حشو باستخدام "=" للحفاظ على نسبة 4:3 من أطوال المخرجات إلى المدخلات.

التمثيل الرياضي

لسلسلة من البايتات b1,b2,b3b_1, b_2, b_3، يتم حساب أحرف Base64 المقابلة c1,c2,c3,c4c_1, c_2, c_3, c_4 كالتالي:

c1=Base64[(b1>>2)]c_1 = \text{Base64}[(b_1 >> 2)]
c2=Base64[((b1&3)<<4)(b2>>4)]c_2 = \text{Base64}[((b_1 \& 3) << 4) | (b_2 >> 4)]
c3=Base64[((b2&15)<<2)(b3>>6)]c_3 = \text{Base64}[((b_2 \& 15) << 2) | (b_3 >> 6)]
c4=Base64[(b3&63)]c_4 = \text{Base64}[(b_3 \& 63)]

حيث Base64[i]\text{Base64}[i] يمثل الحرف ii في أبجدية Base64.

عملية فك التشفير

يعكس فك تشفير Base64 عملية التشفير:

  1. تحويل كل حرف من Base64 إلى قيمته 6 بت
  2. دمج هذه القيم 6 بت
  3. تجميع البتات في قطع 8 بت (بايتات)
  4. تحويل كل بايت إلى الحرف المقابل له

الحشو

عندما يكون عدد البايتات المراد تشفيرها غير قابل للقسمة على 3، يتم تطبيق الحشو:

  • إذا كان هناك بايت واحد متبقي، يتم تحويله إلى حرفين من Base64 متبوعين بـ "=="
  • إذا كان هناك بايتين متبقيين، يتم تحويلهما إلى ثلاثة أحرف من Base64 متبوعة بـ "="

مثال

دعنا نشفر النص "Hello" إلى Base64:

  1. التمثيل ASCII لـ "Hello": 72 101 108 108 111
  2. التمثيل الثنائي: 01001000 01100101 01101100 01101100 01101111
  3. التجميع في قطع من 6 بت: 010010 000110 010101 101100 011011 000110 1111
  4. القطعة الأخيرة تحتوي فقط على 4 بت، لذا نقوم بحشوها بصفر: 010010 000110 010101 101100 011011 000110 111100
  5. التحويل إلى العشري: 18، 6، 21، 44، 27، 6، 60
  6. البحث في أبجدية Base64: S، G، V، s، b، G، 8
  7. النتيجة هي "SGVsbG8="

لاحظ الحشو "=" في النهاية لأن طول المدخلات (5 بايت) غير قابل للقسمة على 3.

الصيغة

الصيغة العامة لحساب طول سلسلة مشفرة Base64 هي:

encoded_length=4×input_length3\text{encoded\_length} = 4 \times \lceil \frac{\text{input\_length}}{3} \rceil

حيث x\lceil x \rceil تمثل دالة السقف (التقريب لأعلى إلى أقرب عدد صحيح).

استخدام أداة تشفير/فك تشفير Base64

تقدم أداتنا لـ Base64 طريقة بسيطة وفعالة لتشفير النص إلى Base64 أو فك تشفير Base64 مرة أخرى إلى نص. إليك كيفية استخدامها:

الاستخدام الأساسي

  1. اختر وضع العملية: اختر "تشفير" لتحويل النص إلى Base64، أو "فك التشفير" لتحويل Base64 مرة أخرى إلى نص.
  2. أدخل المدخلات الخاصة بك: اكتب أو الصق نصك أو سلسلة Base64 في حقل الإدخال.
  3. تحويل: انقر على زر "تشفير إلى Base64" أو "فك التشفير من Base64" لإجراء التحويل.
  4. انسخ النتيجة: استخدم زر "نسخ" لنسخ النتيجة إلى الحافظة الخاصة بك.

ميزة التحويل المباشر

تتضمن أداتنا الآن خيار التحويل المباشر الذي يقوم بتحديث المخرجات أثناء الكتابة:

  1. تفعيل التحويل المباشر: تحقق من مربع "التحويل المباشر" في أعلى الأداة.
  2. رؤية النتائج الفورية: أثناء الكتابة في حقل الإدخال، سيتم تحديث المخرجات تلقائيًا دون الحاجة إلى النقر على زر التحويل.
  3. التبديل حسب الحاجة: يمكنك تفعيل أو تعطيل التحويل المباشر في أي وقت بناءً على تفضيلاتك.

تعتبر ميزة التحويل المباشر مفيدة بشكل خاص عندما:

  • تعمل مع نصوص أو سلاسل Base64 قصيرة إلى متوسطة الطول
  • تقوم بإجراء تغييرات تدريجية وتحتاج إلى ملاحظات فورية
  • تستكشف كيفية ترميز/فك ترميز أحرف مختلفة
  • تتعلم عن أنماط ترميز Base64

بالنسبة للمدخلات الكبيرة جدًا، تستخدم الأداة تقنية "التأخير" للحفاظ على الأداء، مما يضمن أن التحويل يحدث فقط بعد توقفك عن الكتابة لفترة قصيرة، بدلاً من كل ضغطة مفتاح.

حالات الاستخدام

يستخدم ترميز Base64 على نطاق واسع في تطبيقات مختلفة:

  1. مرفقات البريد الإلكتروني: يستخدم MIME (امتدادات البريد الإلكتروني متعددة الأغراض) Base64 لتشفير المرفقات الثنائية في البريد الإلكتروني.

  2. عناوين البيانات: تضمين صور صغيرة أو خطوط أو موارد أخرى مباشرة في HTML أو CSS أو JavaScript باستخدام مخطط URL data:.

  3. اتصالات API: نقل البيانات الثنائية بأمان في حمولة JSON أو تنسيقات API النصية الأخرى.

  4. تخزين البيانات الثنائية في تنسيقات نصية: عندما تحتاج البيانات الثنائية إلى تخزينها في XML أو JSON أو تنسيقات نصية أخرى.

  5. أنظمة المصادقة: تستخدم المصادقة الأساسية في HTTP ترميز Base64 (على الرغم من أنه ليس للأمان، بل للتشفير فقط).

  6. التشفير: كجزء من بروتوكولات وأنظمة تشفير مختلفة، غالبًا لتشفير المفاتيح أو الشهادات.

  7. قيم الكوكيز: ترميز الهياكل البيانية المعقدة لتخزينها في الكوكيز.

البدائل

بينما يُستخدم Base64 على نطاق واسع، هناك بدائل قد تكون أكثر ملاءمة في مواقف معينة:

  1. Base64 الآمن من URL: نسخة تستخدم "-" و "_" بدلاً من "+" و "/" لتجنب مشاكل ترميز URL. مفيد للبيانات التي ستدرج في عناوين URL.

  2. Base32: يستخدم مجموعة من 32 حرفًا، مما يؤدي إلى مخرجات أطول ولكن مع قراءة أفضل من قبل البشر وعدم حساسية للحالة.

  3. ترميز Hex: تحويل بسيط إلى السداسي، والذي يكون أقل كفاءة (يضاعف الحجم) ولكنه بسيط جدًا ومدعوم على نطاق واسع.

  4. النقل الثنائي: للملفات الكبيرة أو عندما تكون الكفاءة أمرًا حاسمًا، فإن بروتوكولات النقل الثنائي المباشر مثل HTTP مع رؤوس Content-Type المناسبة تكون مفضلة.

  5. الضغط + Base64: بالنسبة للبيانات النصية الكبيرة، يمكن أن يساعد الضغط قبل التشفير في تقليل الزيادة في الحجم.

  6. تسلسل JSON/XML: بالنسبة للبيانات الهيكلية، قد يكون استخدام التسلسل الأصلي لـ JSON أو XML أكثر ملاءمة من ترميز Base64.

التاريخ

ترميز Base64 له جذوره في الحوسبة المبكرة وأنظمة الاتصالات حيث كانت البيانات الثنائية بحاجة إلى النقل عبر قنوات مصممة للنص.

تم نشر المواصفة الرسمية لـ Base64 لأول مرة في عام 1987 كجزء من RFC 989، والتي عرّفت البريد الإلكتروني المحسن للخصوصية (PEM). تم تحديث ذلك لاحقًا في RFC 1421 (1993) و RFC 2045 (1996، كجزء من MIME).

يأتي مصطلح "Base64" من حقيقة أن الترميز يستخدم 64 حرفًا ASCII مختلفًا لتمثيل البيانات الثنائية. كان هذا الاختيار لـ 64 حرفًا مقصودًا، حيث أن 64 هو قوة من 2 (2^6)، مما يجعل التحويل بين البيانات الثنائية وBase64 فعالًا.

على مر الزمن، ظهرت عدة نسخ من Base64:

  • Base64 القياسي: كما هو محدد في RFC 4648، باستخدام A-Z، a-z، 0-9، +، / و = للحشو
  • Base64 الآمن من URL: يستخدم - و _ بدلاً من + و / لتجنب مشاكل ترميز URL
  • Base64 الآمن من أسماء الملفات: مشابه للآمن من URL، مصمم للاستخدام في أسماء الملفات
  • Base64 المعدل لـ IMAP: مستخدم في بروتوكول IMAP مع مجموعة مختلفة من الأحرف الخاصة

على الرغم من كونه عمره أكثر من ثلاثة عقود، لا يزال Base64 أداة أساسية في الحوسبة الحديثة، خاصة مع ارتفاع تطبيقات الويب وواجهات برمجة التطبيقات التي تعتمد بشكل كبير على تنسيقات البيانات النصية مثل JSON.

أمثلة على الشيفرة

إليك أمثلة على تشفير وفك تشفير Base64 في لغات برمجة مختلفة:

1// تشفير/فك تشفير Base64 في JavaScript
2function encodeToBase64(text) {
3  return btoa(text);
4}
5
6function decodeFromBase64(base64String) {
7  try {
8    return atob(base64String);
9  } catch (e) {
10    throw new Error("سلسلة Base64 غير صالحة");
11  }
12}
13
14// مثال على الاستخدام
15const originalText = "Hello, World!";
16const encoded = encodeToBase64(originalText);
17console.log("المشفر:", encoded);  // SGVsbG8sIFdvcmxkIQ==
18
19try {
20  const decoded = decodeFromBase64(encoded);
21  console.log("المفكك:", decoded);  // Hello, World!
22} catch (error) {
23  console.error(error.message);
24}
25

الحالات الخاصة والاعتبارات

عند العمل مع ترميز وفك تشفير Base64، كن على علم بهذه الاعتبارات المهمة:

  1. Unicode والأحرف غير ASCII: عند تشفير النصوص التي تحتوي على أحرف غير ASCII، تأكد من استخدام ترميز الأحرف الصحيح (عادةً UTF-8) قبل تشفير Base64.

  2. الحشو: يستخدم Base64 القياسي الحشو باستخدام "=" لضمان أن طول المخرجات هو مضاعف لـ 4. تسمح بعض التطبيقات بإغفال الحشو، مما قد يتسبب في مشاكل التوافق.

  3. فواصل الأسطر: تقوم تطبيقات Base64 التقليدية بإدراج فواصل أسطر (عادةً كل 76 حرفًا) لزيادة قابلية القراءة، لكن التطبيقات الحديثة غالبًا ما تغفل ذلك.

  4. Base64 الآمن من URL: يستخدم Base64 القياسي "+" و"/" التي لها معانٍ خاصة في عناوين URL. في سياقات URL، استخدم Base64 الآمن من URL الذي يستبدل هذه الأحرف بـ "-" و"_".

  5. المسافات البيضاء: عند فك التشفير، تكون بعض التطبيقات متساهلة وتتجاهل المسافات البيضاء، بينما تتطلب أخرى إدخالًا دقيقًا.

  6. زيادة الحجم: يزيد ترميز Base64 من حجم البيانات بحوالي 33% (4 بايتات مخرجة لكل 3 بايتات مدخلة).

  7. الأداء: يمكن أن يكون تشفير وفك تشفير Base64 مكثفًا حسابيًا للبيانات الكبيرة جدًا. تستخدم أداتنا تقنية التأخير للحفاظ على الاستجابة حتى مع المدخلات الكبيرة.

  8. اعتبارات التحويل المباشر: عند استخدام ميزة التحويل المباشر مع المدخلات الكبيرة جدًا، قد تلاحظ تأخيرًا طفيفًا أثناء معالجة الأداة للبيانات. هذا أمر طبيعي ويساعد في الحفاظ على أداء المتصفح.

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

ما هي ميزة التحويل المباشر؟

تقوم ميزة التحويل المباشر بتحديث المخرجات تلقائيًا أثناء الكتابة، دون الحاجة إلى النقر على زر التشفير أو فك التشفير. هذا يوفر ملاحظات فورية ويجعل الأداة أكثر تفاعلية وكفاءة للاستخدام.

هل سيؤدي التحويل المباشر إلى إبطاء المتصفح لدي مع المدخلات الكبيرة؟

تستخدم تنفيذاتنا تقنية التأخير لضمان أداء جيد حتى مع المدخلات الكبيرة. يحدث التحويل فقط بعد توقفك عن الكتابة لفترة قصيرة، بدلاً من كل ضغطة مفتاح، مما يمنع المعالجة المفرطة أثناء الكتابة السريعة.

متى يجب أن أستخدم التحويل المباشر مقابل التحويل اليدوي؟

يعد التحويل المباشر مثاليًا للعمل التفاعلي حيث تحتاج إلى ملاحظات فورية. بالنسبة لمجموعات البيانات الكبيرة جدًا أو عندما تريد مراجعة إدخالاتك قبل التحويل، قد تفضل خيار التحويل اليدوي.

هل يعمل التحويل المباشر لكل من التشفير وفك التشفير؟

نعم، تعمل ميزة التحويل المباشر في كلا الاتجاهين - من النص إلى Base64 ومن Base64 إلى النص.

ماذا يحدث إذا قمت بإدخال Base64 غير صالح مع تفعيل التحويل المباشر؟

إذا قمت بإدخال أحرف Base64 غير صالحة أثناء وضع فك التشفير مع تفعيل التحويل المباشر، ستعرض الأداة رسالة خطأ في الوقت الفعلي، مما يساعدك على تحديد المشكلة وتصحيحها على الفور.

المراجع

  1. RFC 4648 - ترميز البيانات Base16 وBase32 وBase64
  2. RFC 2045 - MIME الجزء الأول: تنسيق أجسام الرسائل على الإنترنت
  3. MDN Web Docs: ترميز وفك ترميز Base64
  4. Base64 - ويكيبيديا
  5. MIME - ويكيبيديا

جرب أداة مشفر/فك تشفير Base64 الخاصة بنا اليوم لتحويل النص بسرعة بين تنسيقات النص وBase64 مع راحة التحويل في الوقت الفعلي. سواء كنت مطورًا يعمل مع واجهات برمجة التطبيقات، أو تتعامل مع مرفقات البريد الإلكتروني، أو تضمين بيانات ثنائية في تنسيقات نصية، تجعل أداتنا العملية بسيطة وفعالة.