جدول المحتويات:

برنامج Caesar Cipher في بايثون: 4 خطوات
برنامج Caesar Cipher في بايثون: 4 خطوات

فيديو: برنامج Caesar Cipher في بايثون: 4 خطوات

فيديو: برنامج Caesar Cipher في بايثون: 4 خطوات
فيديو: Caesar Cipher Program in Python | Encryption and Decryption With Caesar Cipher 2024, شهر نوفمبر
Anonim
برنامج Caesar Cipher في بايثون
برنامج Caesar Cipher في بايثون

تشفير قيصر هو تشفير قديم وشائع الاستخدام يسهل تشفيره وفك تشفيره. إنه يعمل عن طريق تبديل أحرف الأبجدية لإنشاء أبجدية جديدة تمامًا (يمكن أن يتحول ABCDEF إلى أكثر من 4 أحرف ويصبح EFGHIJ).

لا تعتبر Caesar Ciphers أكثر الأصفار أمانًا ، ولكنها جيدة للمهام الصغيرة مثل تمرير الملاحظات السرية أو جعل كلمات المرور أقوى قليلاً. من السهل حقًا فك الشفرة ، ولكن قد يكون تشفير أحد الرموز مملاً إذا لم يكن لديك الأبجدية الخاصة المحفوظة.

لتسهيل هذه العملية ، يمكننا استخدام قوة أجهزة الكمبيوتر ، وبشكل أكثر تحديدًا لغة البرمجة Python.

سيوضح لك هذا Instructable كيفية إنشاء برنامج يحول الرسائل إلى تشفير بأمرك.

اللوازم

كل ما تحتاجه هو مترجم بايثون: IDLE و Pycharm و Thonny هي بعض الخيارات المجانية الجيدة (لقد استخدمت Pycharm)

المعرفة الأساسية ببايثون

الخطوة 1: إعلان المتغيرات والحصول على المدخلات

إعلان المتغيرات والحصول على المدخلات
إعلان المتغيرات والحصول على المدخلات

لتخزين قيم السلسلة (النصية) للأبجدية والرسالة والتحول وما إلى ذلك ، نحتاج إلى استخدام المتغيرات. نبدأ بالتصريح عن المتغيرات "الأبجدية" و "الجزئية" و "الجزئية الثانية" و "الأبجدية الجديدة". لقد كتبت أسماء المتغيرات في Camel Case في الكود الخاص بي (الكلمة الأولى هي أحرف صغيرة والثانية كبيرة) ولكن يمكنك كتابتها بالطريقة التي تريدها ، طالما أنك تتذكر تغييرها في بقية الكود أيضًا. المتغير الأبجدي له القيمة "abcdefghijklmnopqrstuvwxyz". يتم تعيين جميع المتغيرات الأخرى على "" ، وهي سلسلة نصية فارغة لأننا لا نملك قيمها بعد.

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

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

الشفرة:

الأبجدية = "abcdefghijklmnopqrstuvwxyz"

جزئي واحد = ""

partTwo = ""

newAlphabet = ""

message = input ("الرجاء إدخال الرسالة التي تريد ترجمتها:"). low ()

key = int (input ("الرجاء إدخال الرقم الذي تريد تغييره بواسطته:"))

الخطوة الثانية: إنشاء الأبجدية الجديدة

خلق الأبجدية الجديدة
خلق الأبجدية الجديدة

الآن لإنشاء الأبجدية المنقولة. للقيام بذلك ، سوف نستخدم النظام الجزئي. النظام الجزئي هو المكان الذي يقسم فيه الكمبيوتر الأبجدية إلى جزأين (طريقة رائعة لقول الأجزاء). الجزء الأول هو طول المدة التي طلبت من البرنامج أن يتحول بها ، والثاني هو الباقي. يقوم الكمبيوتر بتبديل الأجزاء. هذا هو بالضبط ما تفعله الشفرة ، جنبًا إلى جنب مع العبارة الأولى ، التي تقول أنه إذا كان التحول 0 ، فإن الأبجدية الجديدة والأبجدية القديمة هي نفسها لأنك لا تقوم بتبديل أي شيء.

على سبيل المثال:

تسلسل - 123456789

الجزء الأول - 123 ؛ الجزء الثاني - 456789

تسلسل جديد - 456789123

الشفرة:

إذا كان المفتاح == 0:

newAlphabet = الأبجدية

مفتاح elif> 0:

جزئي واحد = الأبجدية [: مفتاح]

partTwo = الأبجدية [مفتاح:]

newAlphabet = partTwo + partOne

آخر:

جزئي واحد = الأبجدية [:(26 + مفتاح)]

partTwo = الأبجدية [(26 + مفتاح):]

newAlphabet = partTwo + partOne

الخطوة 3: تحويل الرسالة

تحويل الرسالة
تحويل الرسالة

الآن لدينا الأبجدية والأبجدية الجديدة. كل ما تبقى هو تحويل الرسالة إلى رمز.

أولاً ، قمنا بتعيين متغير جديد وندعوه "مشفر" وقمنا بتعيينه على "". ثم نكتب حلقة for-loop معقدة بالفعل تتحقق من كل حرف في الرسالة وتحولها إلى الحرف الجديد. إنه ينتج النتيجة ويوجد لديك رمز تم تحويله بنجاح!

الشفرة:

مشفر = "" لمؤشر message_index في النطاق (0 ، لين (رسالة)):

إذا كانت الرسالة [message_index] == "":

مشفر + = ""

لـ alphabet_index في النطاق (0، len (newAlphabet)):

إذا كانت الرسالة [message_index] == الأبجدية [alphabet_index]:

مشفر + = أبجدية جديدة [alphabet_index]

طباعة (مشفرة)

الخطوة 4: إضافية

إضافي
إضافي
إضافي
إضافي

مرفق ملف الشفرة.

موصى به: