Cryptology Academy · درس

تشفير الملفات باستخدام AES عمليًا

استخدموا OpenSSL وPython لتشفير الملفات الفعلية وفك تشفيرها باستخدام AES

الدرس 4 من 413 خطوة

تشفير الملفات باستخدام AES عمليًا درس مجاني في Cryptology Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cryptology Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cryptology Academy 4 دروس في المجموع.

مرحبًا بكم

تلتقي النظرية بالتطبيق. في هذا الدرس سنشفّر ملفات حقيقية ونفك تشفيرها باستخدام AES-GCM في Python، وهو الوضع الموصى به للتشفير الموثّق.

لماذا AES-GCM؟

يوفّر AES-GCM تشفيرًا موثّقًا مع بيانات مرتبطة (AEAD). فهو يشفّر البيانات وينتج أيضًا علامة مصادقة بحجم 16 بايت. ويُكتشف أي عبث بالبيانات قبل فك التشفير.

مكوّنات AES-GCM

المدخلات: مفتاح بحجم 32 بايت، وnonce عشوائية بحجم 12 بايت، والنص الصريح، وبيانات مرتبطة اختيارية (AAD). المخرجات: النص المشفّر وعلامة مصادقة بحجم 16 بايت. يجب أن تكون قيمة nonce فريدة لكل عملية تشفير.

تثبيت مكتبة cryptography

pip install cryptography تُعد مكتبة cryptography في Python، التي تطورها PyCA، مكتبة التشفير الموصى بها. فهي تغلّف OpenSSL وتوفر وصفات عالية المستوى وبدائيات hazmat منخفضة المستوى.

تشفير AES-GCM في Python

from cryptography.hazmat.primitives.ciphers.aead import AESGCM import os key = AESGCM.generate_key(bit_length=256) nonce = os.urandom(12) aad = b'file_version_1' aesgcm = AESGCM(key) ciphertext = aesgcm.encrypt(nonce, plaintext, aad)

فك تشفير AES-GCM في Python

try: plaintext = aesgcm.decrypt(nonce, ciphertext, aad) except Exception: print('Decryption failed — tampered or wrong key') إذا فشل التحقق من العلامة، فإن decrypt() يرفع استثناءً. لا تتجاهلوا هذا الاستثناء مطلقًا.

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

with open('input.bin', 'rb') as f: plaintext = f.read() ciphertext_with_tag = aesgcm.encrypt(nonce, plaintext, None) # Store: nonce (12 bytes) + ciphertext_with_tag with open('output.enc', 'wb') as f: f.write(nonce + ciphertext_with_tag)

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

with open('output.enc', 'rb') as f: data = f.read() nonce = data[:12] ciphertext_with_tag = data[12:] plaintext = aesgcm.decrypt(nonce, ciphertext_with_tag, None)

إدارة nonce

تكون قيمة nonce عشوائية بحجم 12 بايت مع AES-GCM آمنة لما يصل إلى 2^32 عملية تشفير باستخدام المفتاح نفسه، قبل أن يصبح احتمال التصادم غير مهمَل. بعد ذلك، بدّلوا المفتاح.

استخدام OpenSSL في سطر الأوامر

# Encrypt: openssl enc -aes-256-cbc -pbkdf2 -in plain.txt -out encrypted.bin # Decrypt: openssl enc -d -aes-256-cbc -pbkdf2 -in encrypted.bin -out plain.txt ملاحظة: يستخدم هذا الوضع CBC؛ أضيفوا الخيار -GCM للحصول على تشفير موثّق في الإصدارات الأحدث من OpenSSL.

أفضل ممارسات تخزين المفاتيح

لا تضعوا المفاتيح مباشرةً في الشيفرة المصدرية. استخدموا متغيرات البيئة أو AWS KMS أو HashiCorp Vault أو سلسلة مفاتيح نظام التشغيل. بدّلوا المفاتيح بانتظام. وألغوا المفاتيح عند مغادرة أفراد الفريق.

اختبار سريع

ماذا يحدث عندما يكتشف AES-GCM أن النص المشفّر قد تعرّض للعبث؟

مراجعة

أصبح بإمكانكم الآن تشفير الملفات باستخدام AES-GCM في Python. بعد ذلك ننتقل إلى التشفير غير المتماثل ونتعلم RSA من الأساسيات.
البدء مجانًا

تعلم Cryptology Academy مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
67
الدروس
261

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

هل درس «تشفير الملفات باستخدام AES عمليًا» مجاني؟

نعم — نص درس «تشفير الملفات باستخدام AES عمليًا» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cryptology Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Cryptology Academy 4 دروس في المجموع.

ماذا ستتعلم في «تشفير الملفات باستخدام AES عمليًا»؟

استخدموا OpenSSL وPython لتشفير الملفات الفعلية وفك تشفيرها باستخدام AES تتمرن على Cryptology Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Cryptology Academy؟

لا تُشترط خبرة سابقة. Cryptology Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «تشفير الملفات باستخدام AES عمليًا»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Cryptology Academy هذا؟

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

جميع الدروس في هذه الدورة

  1. مفاهيم التشفير المتماثل
  2. بنية AES: الجولات ومصفوفة الحالة
  3. توسيع مفتاح AES وأحجام المفاتيح
  4. تشفير الملفات باستخدام AES عمليًا
← العودة إلى Cryptology Academy