>> ROB: مرحبا، أنا روب، ودعونا فك برنامج Vigenere.
أولا حتى شيء يتعين علينا القيام به هو جعل تأكد أدخلها المستخدم ما كنا نتوقعه
لهم في سطر الأوامر.
حتى إذا ARGC ليس 2 وهذا يعني إما لم المستخدم لا يدخل علينا سلسلة
تريد أن تكون باستخدام تشفير كما لدينا سلسلة، أو أنها
دخلت أشياء كثيرة جدا.
ونحن لا نعرف ما يجب القيام به مع تلك الأشياء الأخرى.
>> لذلك نحن نقول لهم ما ينبغي أن يكون دخل.
ونعود.
الآن، على افتراض أن ARGC كان 2، ويمكننا تواصل مع بقية البرنامج.
>> نحن الاسم المستعار اسم ARGV [1]
في الكلمة متغير.
بحيث لم يكن لدينا ل استخدام اسم ARGV [1]
خلال الفترة المتبقية من البرنامج.
وربما أننا سوف لن ننسى ما وهذا يعني وهلم جرا.
الكلمة هو اسم أجمل بكثير.
وسنقوم الاستيلاء على الفور طول من الكلمة حقنا هنا.
>> موافق، وحتى الآن نحن نريد للتأكد من أن الكلمة لدينا صالحا في الواقع.
الكلمة التي نستخدمها لتشفير سلاسل ينبغي أن يكون مجرد الأبجدي
حرفا.
إذا قام المستخدم بإدخال غير الأبجدي- حرفا، ينبغي أن نقول، الكلمة الرئيسية
يجب أن يحتوي فقط من A إلى Z ومن ثم العودة.
لذلك هذا لتتكرر في كل حلقة حرف من الكلمة لدينا، والتحقق
أنه إذا كان أحد ليس ثم الأبجدي نحن بحاجة إلى طباعة هذا التحذير.
>> الآن، وبمجرد أن نصل إلى هذه النقطة، ونحن نعلم أن السلسلة يجب أن تكون صحيحة.
يجب أن تكون الكلمة الصحيحة.
والآن نحن بحاجة للحصول على رسالة من المستخدم الذي يريدون منا أن
تشفير مع أن العبارة الرئيسية.
لذلك للحصول على تلك الرسالة، لدينا تفعل حين حلقة التي سيكون ل
باستمرار الحصول على سلسلة من المستخدم حتى يدخلوا سلسلة صالحة.
>> استمرار، ونحن نرى هنا هذا المتغير، الباحث nun_letters_seen.
سنرى ماذا نحن بحاجة أنه في الثانية.
ولكن هذا للحلقة هو الذهاب الى تكرار من ط يساوي 0 كل وسيلة تصل إلى i
يساوي ن، وهو ما يعني أننا بالتكرار على كل ممكن
الأحرف في رسالتنا.
لأننا نريد لتشفير جميع الشخصيات في رسالتنا.
حتى إشعار نفعل إذا كان (isalphamessage [أنا]، لأننا لا نريد لتشفير
أحرف غير الأبجدي.
إذا كان هناك رموز ومساحات، أو أرقام، ونحن لا
تريد تشفير تلك.
>> الآن، على افتراض أنه الأبجدي، نريد أولا لمعرفة ما
فعلا تريد لتشفير الرسالة باستخدام.
فماذا يعني ذلك؟
>> دعونا نفترض أن العبارة الرئيسية كان المستخدم دخلت اي بي سي.
هذا ما نستخدمه لتشفير.
الآن، بسذاجة، ونحن نعتقد وهذا يعني أن نحن نريد لتشفير الحرف الأول
من رسالتنا التي كتبها 0، منذ وسيلة تناوب حرف 0.
>> نحن نريد لتشفير الحرف الثاني بنسبة 1، الحرف الثالث بنسبة 2،
الحرف الرابع 0، خامس بنسبة 1، السادس بنسبة 2، وهلم جرا.
ولكن تذكر، أننا نريد لتخطي المسافات والرموز والأرقام.
وهذا يعني أنه إذا كان المستخدم قد دخل مرحبا العالم كرسالة
انهم يريدون لتشفير، ثم نحن نريد لتشفير ح ب 0
المقابلة لذلك، عن طريق البريد 1، و ل بنسبة 2، 0 لتر من قبل، س ب 1.
نحن نريد لتخطي الفضاء، المشفرة ث بنسبة 2، س ب 0، 1، 2، 0.
حتى إشعار، واذا كنا لم تخطي الفضاء، ثم كنا مشفرة
ث من قبل 0 وانتهت مع سلسلة غير صحيحة.
>> موافق، وهذا هو ما نحتاج متغير num_letters_seen ل.
إذا كنا مجرد الذهاب لتشفير باستخدام هذا الأسلوب، الذي لا تخطي
الرموز، مسافات، والأرقام، ثم نحن يمكن فقط استخدام متغير حسب ما ط
إلى المؤشر إلى العبارة الرئيسية لدينا مع.
نحن بحاجة إلى استخدام num_letters_seen للحفاظ على المسار للمكان الفعلي في
العبارة الرئيسية التي نريد أن المؤشر.
حتى هنا، إذا كانت الكلمة الرئيسية لدينا، إذا num_letter_seen keyword_length وزارة الدفاع، لذلك
لماذا نحن بحاجة إلى وزارة الدفاع بحسب طول الكلمة؟
>> حسنا، مرحبا العالم كان مثالا جيدا.
إذا كانت الكلمة ABC، ثم نحن بحاجة لتشفير مستمر من قبل ثم ب
ثم ج، ثم لف حول العودة، أ، ب، ج، أ، ب، ج.
لذلك نحن بحاجة إلى وزارة الدفاع من قبل طول الكلمة من أجل العودة التفاف حولها.
>> حتى إذا كان هذا هو حرف كبير، ثم نريد أن تشفير من قبل
موقف تلك الرسالة في الأبجدية، التي نحصل فقط عن طريق
يحذف من رأس المال A. و وبالمثل، لأحرف صغيرة، ونحن
يمكن الحصول على المفتاح الذي نريد من خلال يحذف من صغيرة أ.
ذلك بغض النظر عما إذا كانت الرسالة في العبارة الرئيسية كان رأس المال أو
حرف صغير، ونحن في طريقنا لل تشفير من قبل نفس المبلغ.
>> الآن أن لدينا مفتاح لدينا، ونحن نرى هنا، أنه إذا ط الرسالة هو الكبيرة
حرف، ثم نريد أن حساب موقف في الأبجدية من ذلك
حرف، إضافة مفتاح جهدنا لذلك، والتفاف الظهر حول بحيث إذا ذهبنا الماضي
ض نعود إلى أ، ب، ج، وهلم جرا.
ثم، أخيرا، إضافة مرة أخرى على رأس المال A. ذلك ننتقل مرة أخرى إلى [؟ أسكي؟]
مجموعة من هذه الشخصيات بدلا من موقف رقمية في الأبجدية
من هذه الأحرف.
>> ونحن نفعل نفس الشيء بالنسبة ل أحرف الحالة الأدنى.
إلا أننا نريد أن طرح من صغيرة لوإضافته مرة أخرى على في
نهاية، أحرف صغيرة أ.
تلاحظ أن num_letter_seen فقط زيادة إذا كان رسالة ط
الأبجدي.
هذه هي الطريقة التي تخطي المسافات والرموز و الأرقام في العبارة لدينا مفتاح، منذ
num_letter_seen هو ما نستخدمه إلى الفهرس في الكلمة لدينا.
>> أخيرا، في نهاية المطاف، والآن هذه الرسالة تم تشفيرها ط، ونحن
طباعة رسالة ط.
وهذا كل شيء.
اسمي روب.
وهذا هو Vigenere.
>> [عزف الموسيقى]