هل تريد أن تتعلم كيفية ترميز وفك تشفير السلاسل باستخدام نظام تحويل النص الثنائي إلى نص باستخدام 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
نظرًا للسلوك الافتراضي لأمر echo، يوجد حرف سطر جديد في نهاية السلسلة. إذا كنت ترغب في حذف ذلك واستخدام السلسلة فقط، فقم بتشغيل:
echo -n 'I love Linux' | base64
كما تلاحظ، فإن الناتج مختلف عن الناتج السابق. يمكنك أيضًا القيام بذلك باستخدام الأمر printf الذي لا يضيف حرف سطر جديد تلقائيًا إلى السلسلة. يتم تقديم التنسيق أدناه:
printf 'I love Linux' | base64
هذا الناتج مماثل للناتج السابق لأنه لا توجد أحرف سطر جديد هذه المرة. إذا كنت على دراية بـ هنا-السلاسل على Linux، يمكنك أيضًا استخدامها لإرسال إخراج السلسلة إلى أمر base64 مثل هذا:
base64 <<< 'I love Linux'
على غرار أمر echo، تضيف here-strings أيضًا حرف سطر جديد في نهاية السلسلة.
ترميز الملفات باستخدام أمر base64
لترميز ملف باستخدام base64، يمكنك تمرير الملف مباشرة كخيار إلى الأمر base64.
لاختبار ذلك، قم بإنشاء ملف جديد وأضف بعض النصوص إليه. إذا كان لديك بالفعل ملف نصي، فاستخدمه. لقد قمت بإنشاء ملف يسمى base.txt. لترميز محتوى الملف إلى base64، قم بتشغيل:
base64 base.txt
تذكر استبدال base.txt باسم الملف الخاص بك. يعرض الأمر أعلاه الناتج في المحطة الطرفية فقط. ولا يحفظ السلسلة المشفرة في أي مكان. ومع ذلك، يمكنك القيام بذلك بسهولة عن طريق إعادة توجيه الناتج إلى ملف جديد. لقد أنشأت ملفًا آخر يسمى output.txt. هذه المرة سأحفظ الناتج في هذا الملف الفارغ. إليك الأمر الخاص بذلك:
base64 base.txt > output.txt
كما ترى، لم يعرض الجهاز الطرفي الناتج. بدلاً من ذلك، قام هذا الأمر بحفظه في ملف آخر.
فك تشفير سلسلة base64 باستخدام الأمر base64
لفك تشفير سلسلة base64 وتحويلها إلى سلسلة عادية، ستحتاج إلى استخدام علامة “-d” مع أمر base64. دعنا نرى عرضًا توضيحيًا باستخدام أمر echo.
echo 'SG93VG9HZWVrCg==' | base64 -d
إذا كنت ترغب في استخدام here-strings لفك تشفير سلسلة base64، فاستخدم:
base64 -d <<< SG93VG9HZWVrCg==
في بعض الأحيان، قد تحتوي السلسلة على أحرف غير أبجدية رقمية. يمكنك تجاهل هذه الأحرف أثناء فك تشفير السلسلة باستخدام الخيار “-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
لفك تشفير سلسلة نصية بتنسيق base64، كل ما عليك فعله هو استخدام علامة “-d” كما رأينا سابقًا باستخدام أمر base64. الصيغة النحوية هي كما يلي:
echo 'SSBsb3ZlIExpbnV4Cg==' | python3 -m base64 -d # Using the echo commandpython3 -m base64 -d <<< 'SSBsb3ZlIExpbnV4Cg==' # Using here-strings
بالطبع، الطريقة الملائمة هي إنشاء برنامج 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
يمكنك أيضًا إنشاء برنامج لفك تشفير سلسلة 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
الآن أصبح بإمكانك استخدام برامج Python هذه لترميز وفك تشفير أي سلاسل.
إذن، هاتان طريقتان من أسهل الطرق لترميز وفك ترميز السلاسل باستخدام base64. إذا كنت ترغب في معرفة المزيد عن أمر base64 على Linux، فمن الأفضل أن تتحقق من صفحة الدليل الخاصة بها.