1 00:00:00,000 --> 00:00:11,980 2 00:00:11,980 --> 00:00:16,980 >> ROB: Hi, mwen se Rob, e kite yo Decoder pwogram lan Vigenere. 3 00:00:16,980 --> 00:00:21,180 Se konsa, premye bagay nou bezwen fè se fè asire w ke itilizatè a te antre nan sa nou espere 4 00:00:21,180 --> 00:00:23,240 yo nan liy lan lòd. 5 00:00:23,240 --> 00:00:28,720 Se konsa, si arg se pa 2 sa vle di swa itilizatè a pa t 'antre nan nou la fisèl 6 00:00:28,720 --> 00:00:31,780 vle yo lè l sèvi avèk kòm chifreman nou fisèl, oswa yo 7 00:00:31,780 --> 00:00:32,890 te antre nan twò anpil bagay. 8 00:00:32,890 --> 00:00:35,130 Apre sa, nou pa konnen sa yo dwe fè avèk moun ki lòt bagay. 9 00:00:35,130 --> 00:00:37,960 >> Se konsa, nou di yo sa yo ta dwe gen antre nan. 10 00:00:37,960 --> 00:00:39,300 Apre sa, nou retounen. 11 00:00:39,300 --> 00:00:44,570 Koulye a,, an konsideran ke arg te 2, nou ka kontinye ak rès la nan pwogram nan. 12 00:00:44,570 --> 00:00:47,890 >> Nou alyas non an nan argv [1] 13 00:00:47,890 --> 00:00:49,750 nan mo kle a varyab. 14 00:00:49,750 --> 00:00:51,860 Se konsa, ke nou pa oblije sèvi ak argv la Non [1] 15 00:00:51,860 --> 00:00:53,050 nan tout rès la nan pwogram nan. 16 00:00:53,050 --> 00:00:55,570 E petèt nou pral bliye sa sa vle di ak sou sa. 17 00:00:55,570 --> 00:00:57,830 Keyword se yon non anpil joli. 18 00:00:57,830 --> 00:01:01,982 Epitou, n ap imedyatman gen tan pwan longè a nan mo kle nou isit la menm. 19 00:01:01,982 --> 00:01:07,460 >> OK, se konsa koulye a nou vle tcheke ki mo kle nou an, se aktyèlman ki valid. 20 00:01:07,460 --> 00:01:11,250 Mo kle a nou itilize nan ankripte strings yo ta dwe jis pou alfabetik 21 00:01:11,250 --> 00:01:12,400 karaktè. 22 00:01:12,400 --> 00:01:16,830 Si itilizatè a te antre nan ki pa alfabetik karaktè, nou ta dwe di, mo kle 23 00:01:16,830 --> 00:01:20,170 dwe sèlman gen ladan A jiska Z ak Lè sa a, retounen. 24 00:01:20,170 --> 00:01:24,370 Se konsa, sa a pou iterates bouk sou tout karaktè nan mo kle nou an, tcheke 25 00:01:24,370 --> 00:01:31,870 ke si se yon sèl pa alfabetik Lè sa a, nou bezwen ekri ak lèt ​​detache ki avètisman. 26 00:01:31,870 --> 00:01:36,285 >> Koulye a, yon fwa nou jwenn nan pwen sa a, nou konnen ki fisèl la dwe kòrèk. 27 00:01:36,285 --> 00:01:38,230 Mo kle a dwe kòrèk. 28 00:01:38,230 --> 00:01:40,880 Epi, koulye a nou bezwen jwenn mesaj ki soti nan itilizatè a yo ke yo ta vle nou 29 00:01:40,880 --> 00:01:43,910 ankripte ak sa fraz kle. 30 00:01:43,910 --> 00:01:46,780 Se konsa, yo ka resevwa ke mesaj, nou gen yon fè pandan y ap bouk ki nan ale nan 31 00:01:46,780 --> 00:01:52,650 kontinyèlman jwenn yon fisèl soti nan itilizatè a jiskaske yo antre nan yon fisèl ki valid. 32 00:01:52,650 --> 00:01:58,690 >> Kontinye, nou wè isit la varyab sa a, Int nun_letters_seen. 33 00:01:58,690 --> 00:02:01,300 Nou pwal wè poukisa nou bezwen ke nan yon dezyèm fwa. 34 00:02:01,300 --> 00:02:07,320 Men, sa a pou bouk ki pral repňte soti nan mwen egal 0 tout wout la jiska mwen 35 00:02:07,320 --> 00:02:10,940 egal n, ki vle di nou ap iteration sou tout sa ki posib 36 00:02:10,940 --> 00:02:13,020 karaktè nan mesaj nou an. 37 00:02:13,020 --> 00:02:17,370 Paske nou vle ankripte tout karaktè yo nan mesaj nou an. 38 00:02:17,370 --> 00:02:22,970 Se konsa, remake nou fè si (isalphamessage [mwen], paske nou pa vle ankripte 39 00:02:22,970 --> 00:02:25,660 karaktè ki pa alfabetik. 40 00:02:25,660 --> 00:02:28,810 Si gen senbòl, espas, oubyen nimewo yo, nou pa fè sa 41 00:02:28,810 --> 00:02:30,730 vle ankripte sa yo. 42 00:02:30,730 --> 00:02:37,220 >> Koulye a, an konsideran ke li se alfabetik, nou premye vle konnen ki sa nou 43 00:02:37,220 --> 00:02:40,890 aktyèlman vle ankripte mesaj la lè l sèvi avèk. 44 00:02:40,890 --> 00:02:42,710 Se konsa, sa m 'vle di pa sa? 45 00:02:42,710 --> 00:02:46,740 >> Se pou yo asime ke fraz la kle itilizatè a te antre nan te abc. 46 00:02:46,740 --> 00:02:49,070 Sa a ki sa nou ap lè l sèvi avèk ankripte. 47 00:02:49,070 --> 00:02:54,850 Koulye a, naivman, nou panse ke vle di ke nou vle ankripte karaktè nan premye 48 00:02:54,850 --> 00:02:59,740 nan mesaj nou an pa 0, depi yon mwayen wotasyon karaktè a pa 0. 49 00:02:59,740 --> 00:03:04,395 >> Nou vle ankripte karaktè nan dezyèm pa 1, pèsonaj twazyèm pa 2, 50 00:03:04,395 --> 00:03:09,170 karaktè nan katriyèm pa 0, senkyèm lan pa 1, sizyèm lan pa 2, ak sou sa. 51 00:03:09,170 --> 00:03:14,440 Men, sonje, se sa nou vle sote espas ak senbòl ak nimewo. 52 00:03:14,440 --> 00:03:21,520 Sa vle di ke si te gen itilizatè a te antre nan alo mond kòm mesaj la 53 00:03:21,520 --> 00:03:26,590 ke yo vle ankripte, lè sa a nou vle ankripte h a pa 0 54 00:03:26,590 --> 00:03:32,680 ki koresponn a yon an, e la pa 1, nan l pa 2, l la pa 0, o a pa 1. 55 00:03:32,680 --> 00:03:41,050 Nou vle sote espas ki la, chiffres w la pa 2, o la pa 0, 1, 2, 0. 56 00:03:41,050 --> 00:03:45,250 Se konsa, avi, si nou pa t 'sote nan espas, Lè sa a, nou ta gen chiffres 57 00:03:45,250 --> 00:03:51,240 w la pa 0 ak te fini ak fisèl la kòrèk. 58 00:03:51,240 --> 00:03:57,470 >> OK, sa a se sa nou bezwen varyab la num_letters_seen pou. 59 00:03:57,470 --> 00:04:04,450 Si nou te jis ale nan ankripte lè l sèvi avèk metòd sa a, ki pa sote 60 00:04:04,450 --> 00:04:09,860 senbòl, espas, ak nimewo, lè sa a nou te kapab jis itilize varyab la mwen kòm sa 61 00:04:09,860 --> 00:04:12,540 endèks nan kle fraz nou an avèk yo. 62 00:04:12,540 --> 00:04:17,620 Nou bezwen sèvi ak num_letters_seen kenbe tras nan kote aktyèl la nan la 63 00:04:17,620 --> 00:04:21,146 fraz kle ki nou vle Konpayi paran yo. 64 00:04:21,146 --> 00:04:32,240 Se konsa, isit la, si mo kle a nou genyen, si num_letter_seen mod keyword_length, se konsa 65 00:04:32,240 --> 00:04:34,570 poukisa nou bezwen mod pa longè mo kle? 66 00:04:34,570 --> 00:04:36,630 >> Oke, alo mond se te yon bon egzanp. 67 00:04:36,630 --> 00:04:42,310 Si mo kle a te abc, lè sa a nou bezwen kontinyèlman ankripte pa yon Lè sa a, b 68 00:04:42,310 --> 00:04:45,740 Lè sa a, c, Lè sa a, vlope tounen alantou li, yon, B, C, A, B, c. 69 00:04:45,740 --> 00:04:50,110 Se konsa, nou bezwen mod pa longè mo kle yo nan lòd yo vlope tounen alantou. 70 00:04:50,110 --> 00:04:57,280 >> Se konsa, si sa a se yon lèt majuskul, Lè sa a, nou vle ankripte pa la 71 00:04:57,280 --> 00:05:01,450 pozisyon nan lèt sa a nan alfabè a, ki nou jwenn pa jis 72 00:05:01,450 --> 00:05:06,730 soustraksyon soti kapital A. Apre sa, Menm jan an tou, pou lèt miniskil, nou 73 00:05:06,730 --> 00:05:13,000 ka jwenn kle a ke nou vle pa soustraksyon soti miniskil yon. 74 00:05:13,000 --> 00:05:16,910 Se konsa, kèlkeswa si lèt la nan fraz la kle se te yon kapital oswa 75 00:05:16,910 --> 00:05:21,640 miniskil lèt, nou ap ale nan ankripte pa menm kantite lajan an. 76 00:05:21,640 --> 00:05:28,680 >> Koulye a, ke nou gen kle nou yo, nou wè isit la, ke si mesaj mwen se yon majuskul 77 00:05:28,680 --> 00:05:32,660 karaktè, Lè sa a, nou vle kalkile nan pozisyon nan alfabè a nan ki 78 00:05:32,660 --> 00:05:39,460 karaktè, ajoute kle nou nan li, vlope tounen alantou se konsa ke si nou te ale sot pase yo yon 79 00:05:39,460 --> 00:05:43,170 z n 'al jwenn tounen nan yon, B, C, ak sou sa. 80 00:05:43,170 --> 00:05:49,070 Lè sa a, finalman, ajoute tounen sou kapital A. Se konsa, nou chanjman tounen nan [a? ASCII?] 81 00:05:49,070 --> 00:05:52,010 ran de karaktè sa yo olye pou yo nan nimerik pozisyon nan alfabè a 82 00:05:52,010 --> 00:05:53,540 nan karaktè sa yo. 83 00:05:53,540 --> 00:05:56,610 >> Lèfini, nou fè menm bagay la pou pi ba karaktè ka. 84 00:05:56,610 --> 00:06:00,070 Eksepte nou vle fè soustraksyon soti miniskil yon epi ajoute li sou do yo nan la 85 00:06:00,070 --> 00:06:02,900 fen, miniskil yon. 86 00:06:02,900 --> 00:06:08,120 Remake num_letter_seen se sèlman enkremante si mesaj mwen te 87 00:06:08,120 --> 00:06:09,640 alfabetik. 88 00:06:09,640 --> 00:06:15,790 Sa a se ki jan nou sote espas, senbòl, ak nimewo nan kle fraz nou an, depi 89 00:06:15,790 --> 00:06:20,520 num_letter_seen se sa nou ap itilize endèks nan mo kle nou yo. 90 00:06:20,520 --> 00:06:24,540 >> Finalman, nan fen a, kounye a ke mesaj mwen te chiffres, nou 91 00:06:24,540 --> 00:06:26,280 enprime soti mesaj mwen. 92 00:06:26,280 --> 00:06:27,890 Epi sa a, li. 93 00:06:27,890 --> 00:06:28,670 Non mwen se Rob. 94 00:06:28,670 --> 00:06:31,020 Lè sa a se Vigenere. 95 00:06:31,020 --> 00:06:32,850 >> [MIZIK jwe] 96 00:06:32,850 --> 00:06:36,651