1 00:00:00,000 --> 00:00:10,101 >> [MUZIKO ludi] 2 00:00:10,101 --> 00:00:12,700 >> ZAMYLA Chan: Estu la implemento Vigenère, iomete pli 3 00:00:12,700 --> 00:00:14,710 sekurigi kodita ol Cezaro. 4 00:00:14,710 --> 00:00:19,670 La ebenaĵo teksto estas enciphered uzante ŝnuro anstataŭ entjero. 5 00:00:19,670 --> 00:00:22,970 Ĉiu alfabeta karakteron en plata teksto estas moviĝis per 6 00:00:22,970 --> 00:00:24,450 letero en la ŝlosilvorto. 7 00:00:24,450 --> 00:00:30,860 >> En ĉi tiu ekzemplo, la ŝlosilvorto ohai, ho respondas al ŝanĝo de 14; H al 8 00:00:30,860 --> 00:00:36,910 movi de 7; A, ŝanĝo de 0, kaj Mi ŝanĝo de 8. 9 00:00:36,910 --> 00:00:40,710 Se vi sukcese implementado via Cezaro ĉifro, ĝi estos bela 10 00:00:40,710 --> 00:00:43,510 kadro de kiu vi povas apliki Vigenère. 11 00:00:43,510 --> 00:00:47,140 Kiel vi povas vidi, kurante Vigenère kodita kun sola karaktero kiel 12 00:00:47,140 --> 00:00:51,830 ŝlosilvorto estas la sama aĵo kiel Cezaro ĉifro. 13 00:00:51,830 --> 00:00:55,170 >> La samaj piedosignoj apliki al Vigenère kiel ili faris en Cezaro. 14 00:00:55,170 --> 00:01:01,240 La ŝlosilvorto estas la dua komandlinio argumenton, do vi konsenti li kun argv1. 15 00:01:01,240 --> 00:01:05,400 Tiam vi bezonas por kontroli ke la ŝlosilon vorto estas ja ĉiuj alfabeta. 16 00:01:05,400 --> 00:01:09,040 Tie estas kie estas alfa povas veni en oportuna. 17 00:01:09,040 --> 00:01:13,550 Se vi havas validan ŝlosilvorto, vi havos la forto de la uzanto, kaj poste 18 00:01:13,550 --> 00:01:15,820 vi pretas encipher. 19 00:01:15,820 --> 00:01:20,840 >> La Vigenère formulo estas simila al Cezaro formulon, krom nun k 20 00:01:20,840 --> 00:01:27,650 igas k suba indico j, indikante la j-a litero de la ŝlosilvorto. 21 00:01:27,650 --> 00:01:29,640 Ni paŝo tra ĉi tiu procezo. 22 00:01:29,640 --> 00:01:34,060 Diru vi volis sendi mesaĝon al viaj akcidento, mi ŝatas vin, sed vi ne 23 00:01:34,060 --> 00:01:35,190 volas ke ĉiu scias. 24 00:01:35,190 --> 00:01:39,800 Do vi uzas Vigenère kodita kun la ŝlosilvorto panda, ĉar, nu, vi ankaŭ 25 00:01:39,800 --> 00:01:41,160 ŝatas pandas. 26 00:01:41,160 --> 00:01:47,140 >> La unua letero, mi, estos ŝanĝiĝis per p, donante x, 15 literoj post mi, 27 00:01:47,140 --> 00:01:52,850 ĉar 15 p estas la 16-a litero de la alfabeto. 28 00:01:52,850 --> 00:01:56,750 La sekvantan leteron en la ebenaĵo teksto spaco, tiel ke ne estos moviĝis. 29 00:01:56,750 --> 00:02:00,420 Kaj la indekso de la ŝlosilvorto ne ŝanĝos. 30 00:02:00,420 --> 00:02:05,440 >> Tiam la sekva litero en plata teksto estas l, moviĝis per a, kiu ne ŝanĝi 31 00:02:05,440 --> 00:02:10,930 la simpla teksto letero al ĉiuj, ĉar a estas la 0th litero de la alfabeto. 32 00:02:10,930 --> 00:02:14,980 La procezo daŭras, antaŭi la ŝlosilvorto karaktero ĉiufoje estas 33 00:02:14,980 --> 00:02:16,840 letero en la ebenaĵo tekston. 34 00:02:16,840 --> 00:02:21,850 Iam la lasta litero en la ŝlosilvorto estas atingita, la ŝlosilvorto kovras ĉirkaŭ kaj 35 00:02:21,850 --> 00:02:25,890 ŝanĝoj al la sekvanta ebenaĵo teksto leteron per p. 36 00:02:25,890 --> 00:02:27,170 X lvne Noh. 37 00:02:27,170 --> 00:02:29,180 Kiom romantika. 38 00:02:29,180 --> 00:02:33,120 >> Do donita al gravulo, kiel vi konverti ke en la respondaj 39 00:02:33,120 --> 00:02:34,590 kodita movo? 40 00:02:34,590 --> 00:02:37,870 Provu kompari la ASCII valorojn al la ŝanĝo. 41 00:02:37,870 --> 00:02:41,530 Eble vi povas trovi rilaton inter la literoj kaj iliaj 42 00:02:41,530 --> 00:02:44,550 alfabeta indekso uzante ASCII math. 43 00:02:44,550 --> 00:02:48,850 Ĉu vi povas adicii aŭ subtrahi unu signo el alia akiri 44 00:02:48,850 --> 00:02:51,630 vi la deziratan rezulton? 45 00:02:51,630 --> 00:02:55,480 >> Memoru ke la movoj por majuskla kaj minuskla literoj estas samaj. 46 00:02:55,480 --> 00:02:59,510 Do eble vi devos identigi du similaj formuloj por reprezenti la 47 00:02:59,510 --> 00:03:03,570 movo, unu por majuskla ŝlosilvorto karaktero, kaj unu 48 00:03:03,570 --> 00:03:06,510 por minuskla tiu. 49 00:03:06,510 --> 00:03:10,630 >> Venonta, memoru, ke la ŝlosilvorto antaŭas nur se la karakteron en 50 00:03:10,630 --> 00:03:13,520 plata teksto estas litero kaj tiu la kazo de la ebenaĵo 51 00:03:13,520 --> 00:03:16,020 teksto devas esti protektata. 52 00:03:16,020 --> 00:03:20,280 Do, se ni rigardas la formulo por la Vigenère movo, estas du indekso 53 00:03:20,280 --> 00:03:22,880 variabloj, i kaj j. 54 00:03:22,880 --> 00:03:26,795 Gardas spuro de la pozicio en ebenaĵo teksto, kaj la alia la pozicio 55 00:03:26,795 --> 00:03:27,910 en la ŝlosilvorto. 56 00:03:27,910 --> 00:03:32,960 Sed via simpla teksto eblas multe pli longa ol via ŝlosilvorto, en kiu kazo via 57 00:03:32,960 --> 00:03:38,290 ŝlosilvorto indekso bezonas enpaki ĉirkaŭ reen al la komenco de la ŝlosilvorto. 58 00:03:38,290 --> 00:03:39,870 >> Kiel vi faris tion? 59 00:03:39,870 --> 00:03:43,740 Ni retrorigardas al la module operatoro. 60 00:03:43,740 --> 00:03:47,280 Module estas difinita estas la resto de dividado de du nombroj. 61 00:03:47,280 --> 00:03:50,680 Sed kio estas reala praktika uzo de module? 62 00:03:50,680 --> 00:03:54,340 >> Nu, diru vi havas grandan grupon de popolo, kaj vi devas dividi en 63 00:03:54,340 --> 00:03:55,100 tri grupoj. 64 00:03:55,100 --> 00:03:59,500 Unu maniero dividi homojn en grupojn estas havi ilin kalkuli malproksime. 65 00:03:59,500 --> 00:04:03,520 Vi numeron de la grupoj grupo numero 1, 2, kaj 3. 66 00:04:03,520 --> 00:04:08,510 La unua persono diros 1, la venonta 2, la proksimaj 3. 67 00:04:08,510 --> 00:04:12,860 La persono poste diros 1, ĉar ne ekzistas grupo 4, kaj la 68 00:04:12,860 --> 00:04:15,880 grafo komenciĝas super de tie. 69 00:04:15,880 --> 00:04:18,209 >> Vi povas uzi module al fari la samon. 70 00:04:18,209 --> 00:04:22,680 Ĉi tiu epoko, la grupoj volo esti grupo 0, 1, kaj 2. 71 00:04:22,680 --> 00:04:26,960 La unua persono, nombro 1 module 3, estas 1. 72 00:04:26,960 --> 00:04:29,830 Persono 2 module 3 estas 2. 73 00:04:29,830 --> 00:04:32,460 Persono 3 module 3 estas 0. 74 00:04:32,460 --> 00:04:38,470 Persono 4 module 3 donas 1, kaj tiom la grupoj povas enpaki ĉirkaŭe. 75 00:04:38,470 --> 00:04:44,700 >> Do se vi prenos indekso kaj module ke indico de maksimuma grandeco, la 76 00:04:44,700 --> 00:04:49,820 rezulto neniam estos pli granda ol aŭ egala al la grandeco, signifante ke vi 77 00:04:49,820 --> 00:04:52,330 povas pliigi la indekso kiel kiom vi deziras. 78 00:04:52,330 --> 00:04:57,400 Kaj tiel longe, kiel vi module la indekso de iu numero, vi ne ricevos nombro 79 00:04:57,400 --> 00:04:58,510 pli granda ol tio. 80 00:04:58,510 --> 00:05:04,500 Do ni havas 10 personoj anstataŭ 5, kaj ili ĉiuj get atribuita al grupoj 81 00:05:04,500 --> 00:05:07,480 nombro 0, 1, aŭ 2. 82 00:05:07,480 --> 00:05:11,680 >> Provu apliki ĉi tiu al kroĉas super la ŝlosilvorto, escepte anstataŭ ordigi 83 00:05:11,680 --> 00:05:16,050 popolon en grupo numerojn vi volas ke la indekso de la ŝlosilvorto por ke vi povas 84 00:05:16,050 --> 00:05:19,080 akiri la rajton karaktero por la movi sen superi la 85 00:05:19,080 --> 00:05:21,836 longeco de la kordo. 86 00:05:21,836 --> 00:05:24,790 Kun tiu, vi havas vian Vigenère ĉifro. 87 00:05:24,790 --> 00:05:27,790 Mia nomo estas Zamyla, kaj ĉi tiu estas CS50. 88 00:05:27,790 --> 00:05:32,566