1 00:00:00,000 --> 00:00:11,980 2 00:00:11,980 --> 00:00:16,980 >> ROB: سلام، من راب هستم، و اجازه دهید به کشف برنامه Vigenere. 3 00:00:16,980 --> 00:00:21,180 پس اولین چیزی که ما باید انجام دهیم این است را مطمئن شوید که کاربر وارد شده آنچه که ما انتظار می رود 4 00:00:21,180 --> 00:00:23,240 آنها را در خط فرمان. 5 00:00:23,240 --> 00:00:28,720 بنابراین اگر تعداد آنها است 2 نه این بدان معناست که یا کاربر را ما رشته را وارد کنید 6 00:00:28,720 --> 00:00:31,780 می خواهم به استفاده از به عنوان رمزگذاری ما رشته، یا آنها 7 00:00:31,780 --> 00:00:32,890 وارد شده بیش از حد بسیاری از چیزها. 8 00:00:32,890 --> 00:00:35,130 و ما نمی دانیم که چه باید بکنید با آن چیز دیگر. 9 00:00:35,130 --> 00:00:37,960 >> بنابراین ما آنها را به آنچه آنها باید وارد شده است. 10 00:00:37,960 --> 00:00:39,300 و ما باز می گردد. 11 00:00:39,300 --> 00:00:44,570 در حال حاضر، فرض کنید که تعداد آنها 2 بود، ما می توانیم با بقیه برنامه ادامه خواهد داد. 12 00:00:44,570 --> 00:00:47,890 >> ما نام مستعار نام و argv [1] 13 00:00:47,890 --> 00:00:49,750 به کلمه کلیدی متغیر است. 14 00:00:49,750 --> 00:00:51,860 به طوری که ما لازم نیست استفاده از نام و argv [1] 15 00:00:51,860 --> 00:00:53,050 در طول بقیه برنامه. 16 00:00:53,050 --> 00:00:55,570 و شاید ما را فراموش کرده ام چه که به معنی و غیره. 17 00:00:55,570 --> 00:00:57,830 کلید واژه یک نام بسیار بهتر است. 18 00:00:57,830 --> 00:01:01,982 و ما بلافاصله شما را با شتاب به طول از کلمه کلیدی ما در اینجا ببینید. 19 00:01:01,982 --> 00:01:07,460 >> OK، بنابراین در حال حاضر ما می خواهیم به بررسی کنید که کلمه کلیدی ما در واقع معتبر است. 20 00:01:07,460 --> 00:01:11,250 کلمه کلیدی استفاده می کنیم برای رمزگذاری رشته ها باید فقط بر اساس حروف الفبا است 21 00:01:11,250 --> 00:01:12,400 شخصیت. 22 00:01:12,400 --> 00:01:16,830 اگر کاربر وارد شده غیر حروف الفبا شخصیت، باید گفت، کلمه کلیدی 23 00:01:16,830 --> 00:01:20,170 باید شامل از طریق Z و سپس بازگشت. 24 00:01:20,170 --> 00:01:24,370 پس این برای حلقه For بیش از همه حرف از کلمه کلیدی ما، چک کردن 25 00:01:24,370 --> 00:01:31,870 که اگر یکی از حروف الفبا و سپس نه ما نیاز به چاپ که هشدار دهنده. 26 00:01:31,870 --> 00:01:36,285 >> در حال حاضر، زمانی که ما به این نقطه، ما می دانیم که رشته باید درست باشد. 27 00:01:36,285 --> 00:01:38,230 کلمه کلیدی باید درست باشد. 28 00:01:38,230 --> 00:01:40,880 و در حال حاضر ما نیاز به دریافت این پیام از کاربر است که ما می خواهیم به 29 00:01:40,880 --> 00:01:43,910 رمزگذاری با عبارت کلیدی است. 30 00:01:43,910 --> 00:01:46,780 پس برای دریافت این پیام، ما یک در حالی که حلقه که رفتن به 31 00:01:46,780 --> 00:01:52,650 به طور مداوم دریافت یک رشته از کاربر تا زمانی که وارد یک رشته معتبر است. 32 00:01:52,650 --> 00:01:58,690 >> در ادامه، ما در اینجا شاهد این متغیر، اعضای هیات nun_letters_seen. 33 00:01:58,690 --> 00:02:01,300 خواهیم دید که چرا ما نیاز که در یک ثانیه. 34 00:02:01,300 --> 00:02:07,320 اما این حلقه است که به تکرار از من برابر با 0 تمام راه را تا به من 35 00:02:07,320 --> 00:02:10,940 برابر با N، که بدان معنی است که ما در حال تکرار بیش از همه امکان پذیر است 36 00:02:10,940 --> 00:02:13,020 کاراکتر در پیام ما. 37 00:02:13,020 --> 00:02:17,370 از آنجا که ما می خواهیم به رمز در آوردن همه شخصیت در پیام ما. 38 00:02:17,370 --> 00:02:22,970 بنابراین متوجه ما اگر (isalphamessage [I] را انجام دهید، چرا که ما نمی خواهیم به رمز در آوردن 39 00:02:22,970 --> 00:02:25,660 شخصیت های که به ترتیب حروف الفبا نیست. 40 00:02:25,660 --> 00:02:28,810 اگر کاراکتر وجود دارد، فاصله، و یا اعداد، ما نمی 41 00:02:28,810 --> 00:02:30,730 می خواهید به رمز در آوردن آن. 42 00:02:30,730 --> 00:02:37,220 >> در حال حاضر، این فرض است که آن را بر اساس حروف الفبا است، ما برای اولین بار می خواهید برای کشف کردن آنچه ما 43 00:02:37,220 --> 00:02:40,890 در واقع می خواهم به رمز در آوردن پیام با استفاده از. 44 00:02:40,890 --> 00:02:42,710 پس چه می توانم در آن چیست؟ 45 00:02:42,710 --> 00:02:46,740 >> اجازه دهید فرض کنیم که عبارت کلیدی کاربر وارد ABC بود. 46 00:02:46,740 --> 00:02:49,070 این چیزی است که ما با استفاده از به رمز در آوردن. 47 00:02:49,070 --> 00:02:54,850 در حال حاضر، ساده لوحانه، ما فکر می کنم که بدان معنی است که ما می خواهیم به رمز در آوردن اولین شخصیت 48 00:02:54,850 --> 00:02:59,740 پیام ما شده توسط 0، از یک وسیله چرخش شخصیت های 0. 49 00:02:59,740 --> 00:03:04,395 >> ما می خواهیم به رمز در آوردن شخصیت دوم 1، شخصیت سوم 2، 50 00:03:04,395 --> 00:03:09,170 شخصیت چهارم توسط 0، پنجم 1، ششمین 2، و غیره. 51 00:03:09,170 --> 00:03:14,440 اما به یاد داشته باشید، که ما می خواهیم به جست و خیز فضاها و نمادها و اعداد است. 52 00:03:14,440 --> 00:03:21,520 این به این معنی است که در صورتی که کاربر وارد کرده است سلام جهان به عنوان پیام 53 00:03:21,520 --> 00:03:26,590 که آنها می خواهند به رمز در آوردن، و سپس ما می خواهیم به رمز در آوردن در ساعت توسط 0 54 00:03:26,590 --> 00:03:32,680 مربوط به، الکترونیک 1، L 2، L 0، ای 1. 55 00:03:32,680 --> 00:03:41,050 ما می خواهیم به جست و خیز فضا، رمزگذاری شده عرض های 2، درجه 0، 1، 2، 0. 56 00:03:41,050 --> 00:03:45,250 بنابراین توجه، اگر ما تا به حال از قلم نمی فضا، سپس ما را رمزگذاری کرده اند 57 00:03:45,250 --> 00:03:51,240 عرض های 0 و با به پایان رسید رشته نادرست است. 58 00:03:51,240 --> 00:03:57,470 >> OK، این چیزی است که ما نیاز به متغیر num_letters_seen برای. 59 00:03:57,470 --> 00:04:04,450 اگر ما فقط قرار بود به رمز در آوردن با استفاده از این روش، که به جست و خیز نیست 60 00:04:04,450 --> 00:04:09,860 کاراکتر، فاصله، و اعداد، پس از آن ما می تواند فقط به عنوان آنچه که استفاده از متغیر من 61 00:04:09,860 --> 00:04:12,540 به شاخص به عبارت کلیدی خود را با. 62 00:04:12,540 --> 00:04:17,620 ما نیاز به استفاده از num_letters_seen برای حفظ آهنگ از محل واقعی در 63 00:04:17,620 --> 00:04:21,146 عبارت کلیدی است که ما به صفحه اول می خواهم. 64 00:04:21,146 --> 00:04:32,240 بنابراین در اینجا، در صورتی که کلمه کلیدی ما، اگر num_letter_seen keyword_length وزارت دفاع، بنابراین 65 00:04:32,240 --> 00:04:34,570 چرا ما نیاز به وزارت دفاع توسط طول کلمه کلیدی؟ 66 00:04:34,570 --> 00:04:36,630 >> خب، سلام جهان یک مثال خوب بود. 67 00:04:36,630 --> 00:04:42,310 اگر کلمه کلیدی ABC بود، پس ما نیاز به طور مداوم توسط پس از آن رمز در آوردن ب 68 00:04:42,310 --> 00:04:45,740 پس از ج، و سپس قرار دادن بازگشت در اطراف، A، B، C، A، B، C. 69 00:04:45,740 --> 00:04:50,110 بنابراین ما نیاز به وزارت دفاع توسط طول کلمه کلیدی به منظور قرار دادن بازگشت در اطراف. 70 00:04:50,110 --> 00:04:57,280 >> پس اگر این حرف بزرگ است، پس از آن ما می خواهیم به رمز در آوردن توسط 71 00:04:57,280 --> 00:05:01,450 موقعیت که حرف از حروف الفبای، که ما فقط 72 00:05:01,450 --> 00:05:06,730 کم کردن از سرمایه A. و به طور مشابه، برای حروف کوچک، ما 73 00:05:06,730 --> 00:05:13,000 می تواند کلیدی است که ما می خواهید دریافت کنید کم کردن از حروف کوچک. 74 00:05:13,000 --> 00:05:16,910 بنابراین صرف نظر از اینکه نامه در عبارت های کلیدی سرمایه بود یا 75 00:05:16,910 --> 00:05:21,640 حروف کوچک، ما قصد داریم به رمز های همان مقدار. 76 00:05:21,640 --> 00:05:28,680 >> حالا که ما کلید، ما در اینجا ببینید، که اگر پیام من بزرگ است 77 00:05:28,680 --> 00:05:32,660 شخصیت، و سپس ما می خواهیم به محاسبه موقعیت در الفبای آن 78 00:05:32,660 --> 00:05:39,460 شخصیت، اضافه کردن کلید ما برای آن، بسته بندی دوباره در اطراف به طوری که اگر ما به گذشته رفت 79 00:05:39,460 --> 00:05:43,170 Z ما بازگشت به A، B، C، و غیره. 80 00:05:43,170 --> 00:05:49,070 سپس، در نهایت، اضافه کردن و در تاریخ سرمایه A. بنابراین ما به تغییر در [؟ اسکی؟] 81 00:05:49,070 --> 00:05:52,010 طیف وسیعی از این شخصیت ها به جای آن از موقعیت عددی در الفبای 82 00:05:52,010 --> 00:05:53,540 از این حرف می باشد. 83 00:05:53,540 --> 00:05:56,610 >> و ما همین کار را برای شخصیت های مورد پایین تر است. 84 00:05:56,610 --> 00:06:00,070 به جز ما می خواهیم به تفریق از حروف کوچک و اضافه کردن آن را به عقب بر در 85 00:06:00,070 --> 00:06:02,900 پایان، کوچک. 86 00:06:02,900 --> 00:06:08,120 توجه کنید که num_letter_seen تنها افزایش اگر پیام من بود 87 00:06:08,120 --> 00:06:09,640 بر اساس حروف الفبا. 88 00:06:09,640 --> 00:06:15,790 این است که چگونه ما جست و خیز فاصله، نمادها، و تعداد در عبارت کلیدی ما، از 89 00:06:15,790 --> 00:06:20,520 num_letter_seen چیزی است که ما با استفاده از به صفحه اول به کلمه کلیدی است. 90 00:06:20,520 --> 00:06:24,540 >> در نهایت، در پایان، در حال حاضر که پیام من تا به رمزگذاری شده، ما 91 00:06:24,540 --> 00:06:26,280 نسخه قابل چاپ کردن پیام من. 92 00:06:26,280 --> 00:06:27,890 و آن نیست. 93 00:06:27,890 --> 00:06:28,670 نام من راب است. 94 00:06:28,670 --> 00:06:31,020 و این Vigenere است. 95 00:06:31,020 --> 00:06:32,850 >> [MUSIC پخش] 96 00:06:32,850 --> 00:06:36,651