تشفير الملفات وفك تشفيرها في بايثون

تشفير الملفات بإستخدام بايثون
تشفير الملفات بإستخدام بايثون

قبل أن أذكر الأسباب التي تجعلك تقوم بتشفير الملفات و التطبيقات بإستخدام بايثون سأوضح كيف يمكنك القيام بذلك.

تشفير الملفات في بايثون 

لتشفير الملفات و التطبيقات في بايثون نحتاج إلى حزمة تسمى cryptography لذا فإن الخطوة الأولى هي تثبيت cryptography عبر تشغيل الطرفية :

تثبيت حزمة  cryptography

الآن في ملف main.py اكتب التعليمة البرمجية التالية :

لاحظ التعليق الذي يقول إن المفتاح السري يتم إنشاؤه عن طريق الاتصال ب Fernet.generate_key.

و هذا ما فعلناه ولكن في كل مرة تتصل فيها ب Fernet.generate_key فإنه يعرض قيمة مختلفة. وهذا يعني أنه سيسبب مشاكل في تشفير ملفاتنا وفك تشفيرها إذا تغير المفتاح في كل مرة. لأنه يمكن فقط للمفتاح الذي قام بتشفير ملف فك تشفير هذا الملف.

ثم قمنا بإنشاء كائن Fernet باستخدام هذا المفتاح السري و لدى Fernet طرق تمكننا من فك تشفير ملفاتنا وتشفيرها.

دالة encrypt_file

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

طريقة decrypt_file

طريقة decrypt_file هي عكس الطريقة encrypt_file و بدلا من استدعاء fernet.encrypt نستدعي fernet.decrypt و هذا هو الفرق الوحيد في هذا التنفيذ.

لاستخدام هاتين الطريقتين، نستدعيهما فقط مع المسار الذي يتواجد فيه الملف الذي نريد تشفيره أو فك تشفيره. 

لماذا يجب عليك تشفير الملفات

في الآونة الأخيرة كنت أطور تطبيقا لمنظمة خاصة. كانت وظيفتها هي توليد نتائج اختبار COVID للعملاء. أثناء عملية إنشاء نتيجة الاختبار كان لا بد من إدخال رمز شريطي في نتيجة الاختبار والذي يمكن بعد ذلك مسحه ضوئيا للتحقق من صحة نتيجة الاختبار. بالطبع تتطلب هذه الميزة تخزين ملفات PDF.

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

قررت اتباع نهج تشفير الملف قبل تحميل الملف وفك تشفيره قبل عرض النتيجة في المتصفح عند مسح الرمز الشريطي وتوجيههم إلى موقع المؤسسة للتحقق من الملف.

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


اكتشاف المزيد من بايثون العربي

اشترك للحصول على أحدث التدوينات المرسلة إلى بريدك الإلكتروني.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

Scroll to Top

اكتشاف المزيد من بايثون العربي

اشترك الآن للاستمرار في القراءة والحصول على حق الوصول إلى الأرشيف الكامل.

Continue reading