1 00:00:00,000 --> 00:00:11,980 2 00:00:11,980 --> 00:00:16,980 >> Rob: Hi, mimi nina Rob, na hebu decipher Vigenere mpango. 3 00:00:16,980 --> 00:00:21,180 Kitu hivyo kwanza tunahitaji kufanya ni kufanya uhakika user aliingia kile sisi inatarajiwa 4 00:00:21,180 --> 00:00:23,240 yao katika amri line. 5 00:00:23,240 --> 00:00:28,720 Hivyo kama argc ni si 2 hiyo ina maana ama user hakuingia kamba sisi 6 00:00:28,720 --> 00:00:31,780 wanataka kutumia kama encrypting wetu uzi, au wao 7 00:00:31,780 --> 00:00:32,890 aliingia mambo mengi mno. 8 00:00:32,890 --> 00:00:35,130 Na hatujui nini cha kufanya na yale mambo mengine. 9 00:00:35,130 --> 00:00:37,960 >> Hivyo sisi kuwaambia yale wao wanapaswa kuwa aliingia. 10 00:00:37,960 --> 00:00:39,300 Na sisi kurudi. 11 00:00:39,300 --> 00:00:44,570 Sasa, kuchukua kwamba argc ilikuwa 2, tunaweza kuendelea na wengine wa mpango. 12 00:00:44,570 --> 00:00:47,890 >> Sisi Alias ​​jina la argv [1] 13 00:00:47,890 --> 00:00:49,750 ndani ya keyword kutofautiana. 14 00:00:49,750 --> 00:00:51,860 Ili sisi hawana kutumia jina argv [1] 15 00:00:51,860 --> 00:00:53,050 katika mapumziko ya mpango huo. 16 00:00:53,050 --> 00:00:55,570 Na labda tutaweza kusahau kile hiyo ina maana na kadhalika. 17 00:00:55,570 --> 00:00:57,830 Keyword ni jina gani nzuri. 18 00:00:57,830 --> 00:01:01,982 Na tutaweza mara moja kunyakua urefu Keyword haki yetu hapa. 19 00:01:01,982 --> 00:01:07,460 >> OK, hivyo sasa tunataka kuangalia kwamba keyword yetu ni kweli halali. 20 00:01:07,460 --> 00:01:11,250 keyword sisi kutumia encrypt masharti lazima tu kuwa herufi 21 00:01:11,250 --> 00:01:12,400 wahusika. 22 00:01:12,400 --> 00:01:16,830 Kama mtumiaji aliingia mashirika yasiyo ya herufi wahusika, tunapaswa kusema, keyword 23 00:01:16,830 --> 00:01:20,170 lazima iwe na tu kupitia Z na kisha kurudi. 24 00:01:20,170 --> 00:01:24,370 Hivyo hii kwa kitanzi iterates juu ya yote wahusika wa keyword yetu, kuangalia 25 00:01:24,370 --> 00:01:31,870 kwamba kama mtu yuko si herufi kisha tunahitaji magazeti onyo hilo. 26 00:01:31,870 --> 00:01:36,285 >> Sasa, mara moja sisi kupata hatua hii, tunajua kwamba kamba lazima kuwa sahihi. 27 00:01:36,285 --> 00:01:38,230 keyword lazima kuwa sahihi. 28 00:01:38,230 --> 00:01:40,880 Na sasa tunahitaji kupata ujumbe kutoka user kwamba wanataka sisi kwa 29 00:01:40,880 --> 00:01:43,910 fumbo na kwamba maneno muhimu. 30 00:01:43,910 --> 00:01:46,780 Hivyo kupata ujumbe huo, tuna kufanya wakati kitanzi kwamba kwenda 31 00:01:46,780 --> 00:01:52,650 kuendelea kupata kamba kutoka kwa mtumiaji mpaka waingie kamba halali. 32 00:01:52,650 --> 00:01:58,690 >> Kuendelea, tunaona hapa variable hii, int nun_letters_seen. 33 00:01:58,690 --> 00:02:01,300 Tutaweza kuona kwa nini tunahitaji kwamba katika pili. 34 00:02:01,300 --> 00:02:07,320 Lakini hii kwa kitanzi ni kwenda iterate kutoka i sawa na 0 kwa njia yote hadi i 35 00:02:07,320 --> 00:02:10,940 sawa na n, ambayo ina maana sisi ni iterating juu ya wote iwezekanavyo 36 00:02:10,940 --> 00:02:13,020 wahusika katika ujumbe wetu. 37 00:02:13,020 --> 00:02:17,370 Kwa sababu tunataka fumbo yote ya wahusika katika ujumbe wetu. 38 00:02:17,370 --> 00:02:22,970 Hivyo taarifa sisi kufanya kama (isalphamessage [I], kwa sababu hatutaki encrypt 39 00:02:22,970 --> 00:02:25,660 wahusika kuwa ni si herufi. 40 00:02:25,660 --> 00:02:28,810 Kama kuna alama, nafasi, au namba, hatufanyi 41 00:02:28,810 --> 00:02:30,730 wanataka fumbo hizo. 42 00:02:30,730 --> 00:02:37,220 >> Sasa, kudhani kuwa ni herufi, sisi kwanza wanataka kufikiri nini sisi 43 00:02:37,220 --> 00:02:40,890 kweli wanataka fumbo ujumbe kwa kutumia. 44 00:02:40,890 --> 00:02:42,710 Basi je, mimi maana na kwamba? 45 00:02:42,710 --> 00:02:46,740 >> Hebu kudhani kuwa maneno muhimu user aliingia mara abc. 46 00:02:46,740 --> 00:02:49,070 Hiyo ni nini sisi ni kutumia kwa fumbo. 47 00:02:49,070 --> 00:02:54,850 Sasa, naively, tunafikiri kwamba maana yake ni kwamba tunataka fumbo tabia ya kwanza 48 00:02:54,850 --> 00:02:59,740 wa ujumbe wetu na 0, tangu njia kupokezana tabia kwa 0. 49 00:02:59,740 --> 00:03:04,395 >> Tunataka fumbo tabia ya pili na 1, tabia tatu na 2, 50 00:03:04,395 --> 00:03:09,170 tabia ya nne kwa 0, tano na 1, sita na 2, na kadhalika. 51 00:03:09,170 --> 00:03:14,440 Lakini kumbuka, kwamba tunataka ruka nafasi na alama na namba. 52 00:03:14,440 --> 00:03:21,520 Hii ina maana kwamba kama mtumiaji iliingia hujambo dunia kama ujumbe 53 00:03:21,520 --> 00:03:26,590 kwamba wanataka fumbo, basi tunataka fumbo h na 0 54 00:03:26,590 --> 00:03:32,680 sambamba na a, e na 1, l na 2, l na 0, o na 1. 55 00:03:32,680 --> 00:03:41,050 Tunataka ruka nafasi, encrypted w na 2, o na 0, 1, 2, 0. 56 00:03:41,050 --> 00:03:45,250 Hivyo taarifa, kama sisi alikuwa skipped nafasi, basi sisi ingekuwa encrypted 57 00:03:45,250 --> 00:03:51,240 w na 0 na kuishia na sahihi kamba. 58 00:03:51,240 --> 00:03:57,470 >> OK, hii ni nini tunahitaji variable num_letters_seen kwa. 59 00:03:57,470 --> 00:04:04,450 Kama sisi tu kwenda fumbo kwa kutumia njia hii, ambayo haina ruka 60 00:04:04,450 --> 00:04:09,860 alama, nafasi, na idadi, basi sisi inaweza tu kutumia variable i kama nini 61 00:04:09,860 --> 00:04:12,540 kwa index katika maneno yetu muhimu na. 62 00:04:12,540 --> 00:04:17,620 Tunahitaji kutumia num_letters_seen kuweka wimbo wa mahali halisi katika 63 00:04:17,620 --> 00:04:21,146 maneno muhimu kwamba tunataka index. 64 00:04:21,146 --> 00:04:32,240 Hivyo hapa, kama keyword tuna, kama num_letter_seen mod keyword_length, hivyo 65 00:04:32,240 --> 00:04:34,570 kwa nini tunahitaji Mod na Keyword urefu? 66 00:04:34,570 --> 00:04:36,630 >> Vizuri, hello dunia ilikuwa mfano mzuri. 67 00:04:36,630 --> 00:04:42,310 Kama keyword mara abc, basi tunahitaji kuendelea fumbo na kisha b 68 00:04:42,310 --> 00:04:45,740 kisha c, kisha wrap nyuma kote, a, b, c,, b, c. 69 00:04:45,740 --> 00:04:50,110 Kwa hiyo, tunahitaji Mod na Keyword urefu ili kufuta nyuma kote. 70 00:04:50,110 --> 00:04:57,280 >> Hivyo kama hii ni barua uppercase, kisha tunataka fumbo na 71 00:04:57,280 --> 00:05:01,450 nafasi ya kwamba barua katika alfabeti, ambayo sisi kupata na tu 72 00:05:01,450 --> 00:05:06,730 kutoa mapato nje ya mji mkuu A. Na vile vile, kwa barua lowercase, sisi 73 00:05:06,730 --> 00:05:13,000 wanaweza kupata muhimu kwamba tunataka na kutoa mapato nje lowercase a. 74 00:05:13,000 --> 00:05:16,910 Hivyo bila kujali kama barua katika maneno muhimu ilikuwa mji mkuu wa au 75 00:05:16,910 --> 00:05:21,640 barua lowercase, tunakwenda fumbo kwa kiasi hicho. 76 00:05:21,640 --> 00:05:28,680 >> Sasa kwamba tuna muhimu yetu, tunaona hapa, kwamba kama ujumbe i ni uppercase 77 00:05:28,680 --> 00:05:32,660 tabia, kisha tunataka mahesabu ya nafasi katika alfabeti ya kwamba 78 00:05:32,660 --> 00:05:39,460 tabia, kuongeza muhimu yetu kwa hiyo, kufuta nyuma karibu ili kwamba kama sisi akaenda nyuma 79 00:05:39,460 --> 00:05:43,170 z sisi kurudi, b, c, na kadhalika. 80 00:05:43,170 --> 00:05:49,070 Kisha, mwisho, kuongeza nyuma kwenye mji mkuu wa A. Hivyo sisi kuhama nyuma katika [? Kiwe]? 81 00:05:49,070 --> 00:05:52,010 mbalimbali ya wahusika hawa badala ya nafasi numeric katika alfabeti 82 00:05:52,010 --> 00:05:53,540 ya wahusika hawa. 83 00:05:53,540 --> 00:05:56,610 >> Na sisi kufanya kitu kimoja kwa kesi wahusika chini. 84 00:05:56,610 --> 00:06:00,070 Ila tunataka Ondoa nje lowercase a na kuongeza kuwa nyuma katika 85 00:06:00,070 --> 00:06:02,900 mwisho, Herufi za chini. 86 00:06:02,900 --> 00:06:08,120 Taarifa kwamba num_letter_seen ni tu incremented kama ujumbe i mara 87 00:06:08,120 --> 00:06:09,640 herufi. 88 00:06:09,640 --> 00:06:15,790 Hii ni jinsi gani sisi ruka nafasi, alama, na idadi katika maneno yetu muhimu, tangu 89 00:06:15,790 --> 00:06:20,520 num_letter_seen ni nini sisi ni kutumia kwa index katika keyword yetu. 90 00:06:20,520 --> 00:06:24,540 >> Hatimaye, katika mwisho, sasa ujumbe kwamba i imekuwa encrypted, sisi 91 00:06:24,540 --> 00:06:26,280 magazeti ujumbe i. 92 00:06:26,280 --> 00:06:27,890 Na hiyo ni yake. 93 00:06:27,890 --> 00:06:28,670 Jina langu ni Rob. 94 00:06:28,670 --> 00:06:31,020 Na hii ni Vigenere. 95 00:06:31,020 --> 00:06:32,850 >> [Music kucheza] 96 00:06:32,850 --> 00:06:36,651