كيفية ترميز أو فك ترميز سلسلة base64 على Linux

هل تريد أن تتعلم كيفية ترميز وفك تشفير السلاسل باستخدام نظام تحويل النص الثنائي إلى نص باستخدام base64؟ سيعرض لك هذا البرنامج التعليمي طريقتين لترميز وفك تشفير سلسلة على Linux باستخدام أمر base64 ولغة البرمجة Python.




أين يتم استخدام base64؟

تُستخدم base64 على نطاق واسع في مجالات مختلفة. وتتضمن بعض المجالات الأكثر شيوعًا مرفقات البريد الإلكتروني وتطوير الويب والشبكات وترميز عناوين URL.

تستخدم بعض أنظمة البريد الإلكتروني Base64 لتشفير البيانات الثنائية مثل الصور والمستندات في تنسيق نصي حتى يمكن نقلها بأمان مع الرسالة. يستخدم مطورو الويب أيضًا Base64 لتضمين الصور في HTML وCSS لتقليل عدد طلبات HTTP وتحسين سرعة تحميل الصفحة.

هناك استخدام شائع آخر لترميز base64 وهو في رموز المصادقة. يتم إخفاء أسماء المستخدمين وكلمات المرور أحيانًا باستخدام مخطط الترميز هذا وإضافتها إلى رؤوس HTTP أو معلمات URL. في الشبكات، يتم استخدام base64 في البروتوكولات التي تستخدم الاتصالات النصية، مثل HTTP وSMTP، لنقل البيانات دون تلف.

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


ترميز سلسلة باستخدام أمر base64

الطريقة الأساسية لترميز سلسلة باستخدام base64 هي إخراجها إلى المحطة الطرفية باستخدام أمر echo. والحيلة هي توجيه إخراج أمر echo إلى base64، على النحو التالي:

echo 'I love Linux' | base64

محطة طرفية لنظام Linux تُظهر عملية ترميز سلسلة

نظرًا للسلوك الافتراضي لأمر echo، يوجد حرف سطر جديد في نهاية السلسلة. إذا كنت ترغب في حذف ذلك واستخدام السلسلة فقط، فقم بتشغيل:

echo -n 'I love Linux' | base64

محطة طرفية لنظام Linux تعرض عملية ترميز سلسلة باستخدام base64 مع حذف حرف السطر الجديد


كما تلاحظ، فإن الناتج مختلف عن الناتج السابق. يمكنك أيضًا القيام بذلك باستخدام الأمر printf الذي لا يضيف حرف سطر جديد تلقائيًا إلى السلسلة. يتم تقديم التنسيق أدناه:

printf 'I love Linux' | base64

محطة طرفية لنظام Linux تُظهر عملية ترميز سلسلة تم استلامها من أمر printf باستخدام base64

هذا الناتج مماثل للناتج السابق لأنه لا توجد أحرف سطر جديد هذه المرة. إذا كنت على دراية بـ هنا-السلاسل على Linux، يمكنك أيضًا استخدامها لإرسال إخراج السلسلة إلى أمر base64 مثل هذا:

base64 <<< 'I love Linux'

يعرض لك الطرفية الخاصة بنظام Linux كيفية ترميز سلسلة باستخدام أمر base64 بمساعدة عامل السلسلة هنا


على غرار أمر echo، تضيف here-strings أيضًا حرف سطر جديد في نهاية السلسلة.

ترميز الملفات باستخدام أمر base64

لترميز ملف باستخدام base64، يمكنك تمرير الملف مباشرة كخيار إلى الأمر base64.

لاختبار ذلك، قم بإنشاء ملف جديد وأضف بعض النصوص إليه. إذا كان لديك بالفعل ملف نصي، فاستخدمه. لقد قمت بإنشاء ملف يسمى base.txt. لترميز محتوى الملف إلى base64، قم بتشغيل:

base64 base.txt

محطة طرفية لنظام Linux تعرض عملية ترميز ملف إلى base64 باستخدام أمر base64

تذكر استبدال base.txt باسم الملف الخاص بك. يعرض الأمر أعلاه الناتج في المحطة الطرفية فقط. ولا يحفظ السلسلة المشفرة في أي مكان. ومع ذلك، يمكنك القيام بذلك بسهولة عن طريق إعادة توجيه الناتج إلى ملف جديد. لقد أنشأت ملفًا آخر يسمى output.txt. هذه المرة سأحفظ الناتج في هذا الملف الفارغ. إليك الأمر الخاص بذلك:


base64 base.txt > output.txt

محطة طرفية لنظام Linux تعرض عملية ترميز محتوى ملف إلى base64 وحفظه في ملف آخر

كما ترى، لم يعرض الجهاز الطرفي الناتج. بدلاً من ذلك، قام هذا الأمر بحفظه في ملف آخر.

فك تشفير سلسلة base64 باستخدام الأمر base64

لفك تشفير سلسلة base64 وتحويلها إلى سلسلة عادية، ستحتاج إلى استخدام علامة “-d” مع أمر base64. دعنا نرى عرضًا توضيحيًا باستخدام أمر echo.

echo 'SG93VG9HZWVrCg==' | base64 -d

محطة طرفية لنظام Linux تعرض عملية فك تشفير سلسلة base64 باستخدام أمر base64 بمساعدة أمر echo

إذا كنت ترغب في استخدام here-strings لفك تشفير سلسلة base64، فاستخدم:


base64 -d <<< SG93VG9HZWVrCg==

محطة طرفية لنظام Linux تعرض عملية فك تشفير سلسلة base64 باستخدام أمر base64 بمساعدة here-strings

في بعض الأحيان، قد تحتوي السلسلة على أحرف غير أبجدية رقمية. يمكنك تجاهل هذه الأحرف أثناء فك تشفير السلسلة باستخدام الخيار “-i”.

استخدام Python لترميز وفك تشفير سلسلة base64

إذا كنت مبرمجًا متخصصًا في Python أو كنت أكثر دراية بلغة برمجة Python من Bash، فستكون هذه الطريقة أكثر ملاءمة لك. تحتوي Python على وحدة base64 يمكنك استخدامها لترميز وفك ترميز السلاسل. يمكنك إما استخدام أمر python3 terminal أو كتابة برنامج كامل. سأوضح لك الطريقتين.

يشتمل أمر python3 على علامة “-m” أو علامة وحدة. يمكنك استخدام هذه العلامة لاستدعاء وحدة base64. ثم يمكنك تمرير السلسلة بمساعدة أمر echo أو here-strings. فيما يلي الأمر الكامل:


echo 'I love Linux' | python3 -m base64 # Using the echo commandpython3 -m base64 <<< 'I love Linux' # Using here-strings

يعرض الطرفية Linux عملية ترميز سلسلة إلى base64 باستخدام لغة Python

لفك تشفير سلسلة نصية بتنسيق base64، كل ما عليك فعله هو استخدام علامة “-d” كما رأينا سابقًا باستخدام أمر base64. الصيغة النحوية هي كما يلي:

echo 'SSBsb3ZlIExpbnV4Cg==' | python3 -m base64 -d # Using the echo command​​​​​​python3 -m base64 -d <<< 'SSBsb3ZlIExpbnV4Cg==' # Using here-strings

محطة طرفية لنظام Linux تُظهر عملية فك تشفير سلسلة base64 باستخدام لغة Python


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

import base64
input_string = input("Enter the string to encode: ")
encoded_string = base64.b64encode(input_string.encode('utf-8'))
decoded_string = base64.b64decode(encoded_string).decode('utf-8')
print("Encoded string:", encoded_string.decode('utf-8'))
print("Decoded string (verification):", decoded_string)

احفظ الملف باسم مناسب وامتداد “.py”. سأحفظه باسم base64_encoder.py. بمجرد الانتهاء، قم بتشغيل البرنامج باستخدام:

python3 base64_encoder.py

محطة طرفية لنظام Linux تعرض عملية ترميز سلسلة باستخدام برنامج Python

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

import base64
encoded_string = input("Enter the Base64 string to decode: ")
try:
   
   decoded_string = base64.b64decode(encoded_string).decode('utf-8')
   print("Decoded string:", decoded_string)
except Exception as e:
   print(f"Error decoding string: {e}")

احفظ الملف وشغل البرنامج بنفس الطريقة.

python3 base64_decoder.py


محطة طرفية لنظام Linux تعرض عملية فك تشفير سلسلة base64 باستخدام برنامج Python

الآن أصبح بإمكانك استخدام برامج Python هذه لترميز وفك تشفير أي سلاسل.


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

أضف تعليق