قبل أن أذكر الأسباب التي تجعلك تقوم بتشفير الملفات سأوضح كيف يمكنك القيام بذلك.
تشفير الملفات في بايثون
لاحظ التعليق الذي يقول إن المفتاح السري يتم إنشاؤه عن طريق الاتصال ب Fernet.generate_key
و هذا ما فعلناه ونسخت قيمتها في البرنامج، ولكن في كل مرة تتصل فيها ب Fernet.generate_key فإنه يعرض قيمة مختلفة وهذا يعني أنه سيسبب مشاكل في تشفير ملفاتنا وفك تشفيرها إذا تغير المفتاح في كل مرة لأنه يمكن فقط للمفتاح الذي قام بتشفير ملف فك تشفير هذا الملف.
ثم قمنا بإنشاء كائن Fernet باستخدام هذا المفتاح السري و لدى Fernet طرق تمكننا من فك تشفير ملفاتنا وتشفيرها.
دالة encrypt_file
أولا تتم قراءة الملف إلى متغير file_bytes كبايت، بعد ذلك يتم تمريره إلى طريقة encrypt من Fernet. ترجع هذه الطريقة أيضا وحدات البايت، أخيرا يمكننا الكتابة فوق الملف بمحتوياته الجديدة و التي يتم تشفيرها باستخدام مفتاحنا.
طريقة decrypt_file
طريقة الإستخدام
كان تطبيقي الأولي واضحا: قم بإنشاء معرف طويل للغاية للملف وتحميله إلى منصة التخزين السحابية، و بالطبع يمكن للمرء أن يعتبر هذا كافيا لأن فرض عنوان URL سيستغرق ملايين السنين حتى يكون ناجحا. ومع ذلك في حالة وصول المرء مباشرة إلى التخزين ستكون جميع الملفات متاحة علنا و سيكون هذا كارثيا بالنسبة لشركة تحتفظ ببيانات حساسة لعملائها.
قررت اتباع نهج تشفير الملف قبل تحميل الملف وفك تشفيره قبل عرض النتيجة في المتصفح عند مسح الرمز الشريطي وتوجيههم إلى موقع المؤسسة للتحقق من الملف.
النقطة التي أحاول توضيحها هنا هي: لإضافة طبقة من الأمان إلى ملفاتك في التخزين السحابي يمكنك تشفير الملف قبل تحميله إلى منصة التخزين السحابي خاصة تلك التي لا تحتوي على تشفير تلقائي مدمج فيه. شيء واحد يجب ملاحظته هو أن هذا قد يضيف مشكلة في الأداء إلى تطبيقك إذا كان لديك العديد من المستخدمين المتزامنين الذين يصلون إلى هذه الموارد المشفرة بسبب عملية فك التشفير.
لا يوجد تعليقات
أضف تعليق