Skip to content

🔐 تمارين التشفير والترميز (30 تمرين)

تمرين 1⭐ سهل

شيفرة قيصر - تشفير

اكتب دالة تأخذ نصاً ومقدار الإزاحة وتُرجع النص مشفراً بشيفرة قيصر. شيفرة قيصر تزيح كل حرف بمقدار ثابت في الأبجدية الإنجليزية.

💡 تلميح

استخدم باقي القسمة % 26 لإعادة الحرف إلى بداية الأبجدية عند تجاوز الحرف z

تمرين_1.ص
7 سطر · 101 حرفCtrl+Enter للتشغيل
📝 عرض الحل
الحل.ص
22 سطر · 527 حرفCtrl+Enter للتشغيل
تمرين 2⭐ سهل

شيفرة قيصر - فك التشفير

اكتب دالة تأخذ نصاً مشفراً بشيفرة قيصر ومقدار الإزاحة وتُرجع النص الأصلي.

💡 تلميح

فك التشفير هو عكس التشفير: اطرح الإزاحة بدلاً من جمعها، وأضف 26 لتجنب القيم السالبة

تمرين_2.ص
7 سطر · 104 حرفCtrl+Enter للتشغيل
📝 عرض الحل
الحل.ص
22 سطر · 540 حرفCtrl+Enter للتشغيل
تمرين 3⭐ سهل

تشفير XOR بسيط

اكتب دالة تأخذ نصاً ومفتاحاً رقمياً وتُشفر كل حرف باستخدام عملية XOR مع المفتاح. ثم اكتب دالة لفك التشفير.

💡 تلميح

عملية XOR (^) مع نفس المفتاح مرتين تُعيد القيمة الأصلية: (أ ^ ب) ^ ب = أ

تمرين_3.ص
9 سطر · 152 حرفCtrl+Enter للتشغيل
📝 عرض الحل
الحل.ص
14 سطر · 303 حرفCtrl+Enter للتشغيل
تمرين 4⭐ سهل

ترميز الأعداد

اكتب دالة تأخذ عدداً صحيحاً وتحوّله إلى نص مشفر حيث كل رقم يُستبدل بحرف (0→أ، 1→ب، 2→ت، ...). واكتب دالة عكسية لفك الترميز.

💡 تلميح

أنشئ مصفوفة من الأحرف العربية واستخدم الرقم كفهرس للوصول إلى الحرف المقابل

تمرين_4.ص
11 سطر · 161 حرفCtrl+Enter للتشغيل
📝 عرض الحل
الحل.ص
27 سطر · 665 حرفCtrl+Enter للتشغيل
تمرين 5⭐ سهل

عكس النص للتشفير

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

💡 تلميح

اعكس النص أولاً ثم أضف لكل حرف قيمة رقمية تعتمد على موقعه

تمرين_5.ص
6 سطر · 72 حرفCtrl+Enter للتشغيل
📝 عرض الحل
الحل.ص
22 سطر · 421 حرفCtrl+Enter للتشغيل
تمرين 6⭐ سهل

مجموع التحقق البسيط

اكتب دالة تحسب مجموع التحقق (checksum) لنص عن طريق جمع القيم الرقمية لكل حرف ثم إرجاع الباقي من القسمة على 256.

💡 تلميح

استخدم كود_حرف() للحصول على القيمة الرقمية لكل حرف وباقي القسمة % 256 للحصول على قيمة بين 0 و 255

تمرين_6.ص
8 سطر · 148 حرفCtrl+Enter للتشغيل
📝 عرض الحل
الحل.ص
11 سطر · 207 حرفCtrl+Enter للتشغيل
تمرين 7⭐ سهل

شيفرة ROT13

اكتب دالة تُطبق شيفرة ROT13 على نص إنجليزي. ROT13 تزيح كل حرف بمقدار 13 موقعاً. تطبيقها مرتين يُعيد النص الأصلي.

💡 تلميح

ROT13 هي حالة خاصة من شيفرة قيصر بإزاحة 13. بما أن 13 + 13 = 26 (عدد أحرف الأبجدية)، تطبيقها مرتين يعيد الأصل

تمرين_7.ص
8 سطر · 126 حرفCtrl+Enter للتشغيل
📝 عرض الحل
الحل.ص
26 سطر · 650 حرفCtrl+Enter للتشغيل
تمرين 8⭐ سهل

الاستبدال الأبجدي

اكتب دالة تُشفر نصاً باستخدام جدول استبدال بسيط حيث كل حرف من الأبجدية يُستبدل بحرف آخر محدد مسبقاً.

💡 تلميح

ابحث عن موقع كل حرف في الأبجدية الأصلية واستبدله بالحرف في نفس الموقع من الأبجدية البديلة

تمرين_8.ص
9 سطر · 225 حرفCtrl+Enter للتشغيل
📝 عرض الحل
الحل.ص
21 سطر · 550 حرفCtrl+Enter للتشغيل
تمرين 9⭐ سهل

ترميز وفك ترميز Base

اكتب دالتين: واحدة تحوّل عدداً من النظام العشري إلى نظام عد معين (مثل 16)، وأخرى تعيده إلى العشري.

💡 تلميح

للتحويل: اقسم على القاعدة مراراً واجمع البواقي. للعكس: اضرب في القاعدة وأضف قيمة كل رمز

تمرين_9.ص
13 سطر · 195 حرفCtrl+Enter للتشغيل
📝 عرض الحل
الحل.ص
32 سطر · 687 حرفCtrl+Enter للتشغيل
تمرين 10⭐ سهل

دالة التجزئة البسيطة

اكتب دالة تجزئة (hash) بسيطة تأخذ نصاً وتُرجع عدداً صحيحاً. يجب أن تُعطي نفس النتيجة لنفس المدخل دائماً.

💡 تلميح

استخدم خوارزمية مشهورة: اضرب القيمة الحالية في عدد أولي (مثل 31) وأضف كود الحرف مع أخذ الباقي من عدد أولي كبير

تمرين_10.ص
9 سطر · 188 حرفCtrl+Enter للتشغيل
📝 عرض الحل
الحل.ص
13 سطر · 280 حرفCtrl+Enter للتشغيل
تمرين 11⭐⭐ متوسط

شيفرة فيجنير

اكتب دالتي تشفير وفك تشفير باستخدام شيفرة فيجنير. هذه الشيفرة تستخدم كلمة مفتاح بدلاً من إزاحة ثابتة، حيث كل حرف في المفتاح يُحدد إزاحة مختلفة.

💡 تلميح

كل حرف في المفتاح يُحدد إزاحة مختلفة. استخدم عداداً للتنقل بين أحرف المفتاح بشكل دوري باستخدام %

تمرين_11.ص
13 سطر · 228 حرفCtrl+Enter للتشغيل
📝 عرض الحل
الحل.ص
60 سطر · 1562 حرفCtrl+Enter للتشغيل
تمرين 12⭐⭐ متوسط

شيفرة التبديل (Transposition)

اكتب دالة تُشفر نصاً باستخدام شيفرة التبديل العمودية. توضع الأحرف في صفوف بعرض المفتاح ثم تُقرأ عمودياً.

💡 تلميح

لكل عمود (من 0 إلى عرض-1)، اجمع الأحرف بقفز مقداره العرض: موقع، موقع+عرض، موقع+2×عرض، ...

تمرين_12.ص
6 سطر · 90 حرفCtrl+Enter للتشغيل
📝 عرض الحل
الحل.ص
14 سطر · 281 حرفCtrl+Enter للتشغيل
تمرين 13⭐⭐ متوسط

تحليل التكرار

اكتب دالة تُحلل تكرار الأحرف في نص مشفر وتُرجع الأحرف مرتبة من الأكثر تكراراً إلى الأقل. هذا يُساعد في كسر شيفرات الاستبدال.

💡 تلميح

استخدم مصفوفتين متوازيتين: واحدة للأحرف وأخرى للعدادات. ثم رتّبهما ترتيباً تنازلياً حسب العدّادات

تمرين_13.ص
7 سطر · 118 حرفCtrl+Enter للتشغيل
📝 عرض الحل
الحل.ص
42 سطر · 1093 حرفCtrl+Enter للتشغيل
تمرين 14⭐⭐ متوسط

فاحص قوة كلمة المرور

اكتب دالة تفحص قوة كلمة مرور وتُعطيها درجة من 0 إلى 100. المعايير: الطول، وجود أحرف كبيرة وصغيرة، أرقام، رموز خاصة، عدم التكرار.

💡 تلميح

قسّم الدرجة حسب المعايير: طول ≥ 8 (20 نقطة)، أحرف صغيرة (15)، كبيرة (15)، أرقام (15)، رموز (25)، طول ≥ 12 مكافأة (10)

تمرين_14.ص
8 سطر · 159 حرفCtrl+Enter للتشغيل
📝 عرض الحل
الحل.ص
63 سطر · 1374 حرفCtrl+Enter للتشغيل
تمرين 15⭐⭐ متوسط

تجزئة مع ملح

اكتب دالة تجزئة تُضيف "ملحاً" (salt) - نص عشوائي يُضاف للمدخل قبل التجزئة لمنع هجمات جدول قوس قزح.

💡 تلميح

ادمج الملح مع النص قبل التجزئة (مثلاً: ملح + نص + ملح) ثم طبّق دالة تجزئة. دالة التحقق تُعيد حساب التجزئة وتقارن

تمرين_15.ص
14 سطر · 266 حرفCtrl+Enter للتشغيل
📝 عرض الحل
الحل.ص
24 سطر · 523 حرفCtrl+Enter للتشغيل
تمرين 16⭐⭐ متوسط

ترميز وفك ترميز Run-Length

اكتب دالتي ترميز وفك ترميز Run-Length Encoding (RLE). هذا الترميز يستبدل التسلسلات المتكررة بالحرف وعدد تكراراته.

💡 تلميح

للترميز: عُد تكرارات كل حرف متتالي. لفك الترميز: اقرأ حرفاً ثم اقرأ الأرقام التي تليه لتعرف العدد

تمرين_16.ص
14 سطر · 221 حرفCtrl+Enter للتشغيل
📝 عرض الحل
الحل.ص
48 سطر · 1088 حرفCtrl+Enter للتشغيل
تمرين 17⭐⭐ متوسط

التشفير بمفتاح متعدد

اكتب دالة تُشفر نصاً باستخدام مفتاح رقمي مكون من عدة أرقام. كل رقم في المفتاح يُستخدم لإزاحة حرف مختلف بالتناوب.

💡 تلميح

استخدم موقع الحرف % طول المفتاح لتحديد أي رقم من المفتاح يُستخدم لكل حرف

تمرين_17.ص
13 سطر · 256 حرفCtrl+Enter للتشغيل
📝 عرض الحل
الحل.ص
24 سطر · 616 حرفCtrl+Enter للتشغيل
تمرين 18⭐⭐ متوسط

إخفاء المعلومات في النص

اكتب دالة تُخفي رسالة سرية داخل نص عادي عن طريق استبدال المسافات بأنواع مختلفة (مسافة عادية = 0، مسافتان = 1) لتمثيل بتات الرسالة.

💡 تلميح

حوّل الرسالة إلى بتات (0 و 1). عند كل مسافة في النص: مسافة واحدة = بت 0، مسافتان = بت 1

تمرين_18.ص
13 سطر · 254 حرفCtrl+Enter للتشغيل
📝 عرض الحل
الحل.ص
68 سطر · 1666 حرفCtrl+Enter للتشغيل
تمرين 19⭐⭐ متوسط

ترميز تحويل القاعدة

اكتب دالة تُرمّز نصاً عن طريق تحويل كل حرف إلى تمثيله في نظام عدّ أساس 36 (أرقام 0-9 + أحرف a-z). واكتب دالة عكسية.

💡 تلميح

حوّل كود كل حرف إلى قاعدة 36 ثم افصل بينها بفاصل مثل - لسهولة فك الترميز

تمرين_19.ص
12 سطر · 177 حرفCtrl+Enter للتشغيل
📝 عرض الحل
الحل.ص
51 سطر · 1102 حرفCtrl+Enter للتشغيل
تمرين 20⭐⭐ متوسط

توقيع الرسائل البسيط

اكتب نظام توقيع بسيط حيث يُمكن توقيع رسالة بمفتاح سري والتحقق من صحة التوقيع لاحقاً.

💡 تلميح

التوقيع هو تجزئة (مفتاح + رسالة). للتحقق: أعد حساب التجزئة وقارنها بالتوقيع المُعطى

تمرين_20.ص
14 سطر · 318 حرفCtrl+Enter للتشغيل
📝 عرض الحل
الحل.ص
24 سطر · 569 حرفCtrl+Enter للتشغيل
تمرين 21⭐⭐ متوسط

مولد كلمات مرور

اكتب دالة تُولّد كلمة مرور عشوائية بطول محدد تحتوي على أحرف كبيرة وصغيرة وأرقام ورموز.

💡 تلميح

أنشئ نصاً يحتوي على كل الأحرف المسموح بها ثم اختر منها عشوائياً باستخدام دالة عشوائي()

تمرين_21.ص
7 سطر · 115 حرفCtrl+Enter للتشغيل
📝 عرض الحل
الحل.ص
13 سطر · 357 حرفCtrl+Enter للتشغيل
تمرين 22⭐⭐ متوسط

شيفرة السياج (Rail Fence)

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

💡 تلميح

أنشئ مصفوفة فارغة لكل سطر. تحرّك صعوداً ونزولاً بين السطور وأضف كل حرف للسطر الحالي. في النهاية ادمج كل السطور

تمرين_22.ص
7 سطر · 118 حرفCtrl+Enter للتشغيل
📝 عرض الحل
الحل.ص
29 سطر · 619 حرفCtrl+Enter للتشغيل
تمرين 23⭐⭐⭐ صعب

الرفع إلى أس مع باقي القسمة (Modular Exponentiation)

اكتب دالة تحسب (قاعدة^أس) % معامل بكفاءة باستخدام التربيع المتكرر. هذه العملية أساسية في خوارزميات التشفير مثل RSA.

💡 تلميح

استخدم التربيع المتكرر: إذا كان الأس زوجياً ربّع القاعدة وانصّف الأس. إذا كان فردياً اضرب النتيجة بالقاعدة. خذ الباقي في كل خطوة

تمرين_23.ص
9 سطر · 152 حرفCtrl+Enter للتشغيل
📝 عرض الحل
الحل.ص
20 سطر · 394 حرفCtrl+Enter للتشغيل
تمرين 24⭐⭐⭐ صعب

محاكاة شيفرة الكتل (Block Cipher)

اكتب نظام تشفير كتلي بسيط. قسّم النص إلى كتل بحجم ثابت، طبّق عمليات XOR والتبديل على كل كتلة مع المفتاح، ثم ادمج النتائج.

💡 تلميح

قسّم النص إلى كتل متساوية (أضف حشواً إذا لزم). لكل كتلة: XOR مع المفتاح ثم اعكس الترتيب. لفك التشفير: اعكس الترتيب ثم XOR

تمرين_24.ص
12 سطر · 241 حرفCtrl+Enter للتشغيل
📝 عرض الحل
الحل.ص
74 سطر · 1876 حرفCtrl+Enter للتشغيل
تمرين 25⭐⭐⭐ صعب

سلسلة التجزئة (Hash Chain)

اكتب نظام سلسلة تجزئة حيث كل عنصر يعتمد على تجزئة العنصر السابق. هذا مفهوم أساسي في سلسلة الكتل (Blockchain).

💡 تلميح

كل كتلة تحتوي: البيانات، تجزئة الكتلة السابقة، وتجزئتها الخاصة = تجزئة(سابقة + بيانات). للتحقق: أعد حساب كل تجزئة وتأكد من تطابق الروابط

تمرين_25.ص
13 سطر · 296 حرفCtrl+Enter للتشغيل
📝 عرض الحل
الحل.ص
53 سطر · 1422 حرفCtrl+Enter للتشغيل
تمرين 26⭐⭐⭐ صعب

لغز تشفيري (Proof of Work)

اكتب نظام إثبات العمل البسيط: ابحث عن رقم (nonce) بحيث أن تجزئة (بيانات + nonce) تبدأ بعدد محدد من الأصفار.

💡 تلميح

جرّب أرقاماً متزايدة (0، 1، 2، ...) واحسب تجزئة(بيانات + رقم) في كل مرة حتى يكون باقي القسمة على 10^صعوبة يساوي صفراً

تمرين_26.ص
7 سطر · 178 حرفCtrl+Enter للتشغيل
📝 عرض الحل
الحل.ص
32 سطر · 734 حرفCtrl+Enter للتشغيل
تمرين 27⭐⭐⭐ صعب

اشتقاق المفتاح (Key Derivation)

اكتب دالة اشتقاق مفتاح تأخذ كلمة مرور وملحاً وتُنتج مفتاحاً بطول محدد عن طريق تطبيق التجزئة بشكل متكرر.

💡 تلميح

كرّر التجزئة عدة مرات: ابدأ بـ تجزئة(كلمة_مرور + ملح) ثم تجزئة(النتيجة + ملح) وهكذا. لتوليد المفتاح بطول محدد، استخدم عدة تجزئات

تمرين_27.ص
7 سطر · 151 حرفCtrl+Enter للتشغيل
📝 عرض الحل
الحل.ص
35 سطر · 902 حرفCtrl+Enter للتشغيل
تمرين 28⭐⭐⭐ صعب

مخزن الرسائل المشفرة

اكتب نظاماً كاملاً لتخزين واسترجاع رسائل مشفرة. يدعم إضافة رسالة بمفتاح، قراءة رسالة بمفتاح، وعرض قائمة الرسائل.

💡 تلميح

استخدم مصفوفة كمخزن. كل عنصر يحتوي: العنوان، البيانات المشفرة (XOR مع المفتاح)، وبصمة المفتاح (تجزئته) للتحقق عند القراءة

تمرين_28.ص
6 سطر · 147 حرفCtrl+Enter للتشغيل
📝 عرض الحل
الحل.ص
74 سطر · 1890 حرفCtrl+Enter للتشغيل
تمرين 29⭐⭐⭐ صعب

محاكاة التوقيع الرقمي

اكتب نظام توقيع رقمي مبسط يحاكي مفهوم المفتاح العام والخاص. استخدم عمليات رياضية لتوليد زوج مفاتيح وتوقيع رسائل والتحقق منها.

💡 تلميح

استخدم مفهوم RSA المبسط: المفتاح العام (e, n) والخاص (d, n). التوقيع = ملخص^d mod n. التحقق = توقيع^e mod n == ملخص

تمرين_29.ص
12 سطر · 192 حرفCtrl+Enter للتشغيل
📝 عرض الحل
الحل.ص
64 سطر · 1619 حرفCtrl+Enter للتشغيل
تمرين 30⭐⭐⭐ صعب

محاكاة تبادل مفاتيح ديفي-هيلمان

اكتب محاكاة لبروتوكول ديفي-هيلمان لتبادل المفاتيح. طرفان يتبادلان قيماً علنية ويتوصلان لمفتاح سري مشترك دون إرساله.

💡 تلميح

القيمة العامة = g^سر mod p. المفتاح المشترك: عُلا تحسب (عام_باسم)^سر_عُلا mod p، وباسم يحسب (عام_عُلا)^سر_باسم mod p — النتيجة واحدة!

تمرين_30.ص
12 سطر · 215 حرفCtrl+Enter للتشغيل
📝 عرض الحل
الحل.ص
55 سطر · 1494 حرفCtrl+Enter للتشغيل

مُرخَّص بموجب رخصة MIT