1 00:00:00,000 --> 00:00:10,101 >> [За възпроизвеждане на музика] 2 00:00:10,101 --> 00:00:12,700 >> ZAMYLA CHAN: Да се ​​прилагат Vigenere, малко по- 3 00:00:12,700 --> 00:00:14,710 осигуряване шифър от Цезар. 4 00:00:14,710 --> 00:00:19,670 В прав текст е кодирана използване низ вместо число. 5 00:00:19,670 --> 00:00:22,970 Всяка буква, в обикновен текст се измества от 6 00:00:22,970 --> 00:00:24,450 писмо в ключовата дума. 7 00:00:24,450 --> 00:00:30,860 >> В този пример, ключовата дума Ohai, O съответства на изместване на 14, Н до 8 00:00:30,860 --> 00:00:36,910 измести от 7; A, смяна на 0 и I изместване на 8. 9 00:00:36,910 --> 00:00:40,710 Ако сте успешно си Caesar шифър, че ще бъде хубаво 10 00:00:40,710 --> 00:00:43,510 рамка, от която могат да се реализират Vigenere. 11 00:00:43,510 --> 00:00:47,140 Както можете да видите, пуснете Vigenere шифър с един символ като 12 00:00:47,140 --> 00:00:51,830 Ключовата дума е едно и също нещо като шифър на Цезар. 13 00:00:51,830 --> 00:00:55,170 >> Същите стъпки се прилагат за Vigenere тъй като те са в Caesar. 14 00:00:55,170 --> 00:01:01,240 Ключовата дума е на втора линия команда аргумент, така че достъп до него с argv1. 15 00:01:01,240 --> 00:01:05,400 След това трябва да се провери, че ключът Думата е наистина всичко азбучен. 16 00:01:05,400 --> 00:01:09,040 Тук е мястото, където е алфа може да дойде по-удобно. 17 00:01:09,040 --> 00:01:13,550 Ако имате валиден дума, вие получавате сила от страна на потребителя и след това 18 00:01:13,550 --> 00:01:15,820 сте готови да пиша с шифър. 19 00:01:15,820 --> 00:01:20,840 >> Шифърът Vigenere формула е подобна да Caesar формула, с изключение на сега к 20 00:01:20,840 --> 00:01:27,650 става к индекс J, което показва, на у-тата буква от дума. 21 00:01:27,650 --> 00:01:29,640 Нека да преминете през този процес. 22 00:01:29,640 --> 00:01:34,060 Да речем, че иска да изпрати послание към вашия катастрофата, аз те харесвам, но не 23 00:01:34,060 --> 00:01:35,190 Искам всички да знаят. 24 00:01:35,190 --> 00:01:39,800 Така че използвате Vigenere шифър с дума панда, защото, добре, вие също 25 00:01:39,800 --> 00:01:41,160 харесва пандите. 26 00:01:41,160 --> 00:01:47,140 >> Първото писмо, I, ще бъдат пренасочени от стр., като X, 15 букви след I, 27 00:01:47,140 --> 00:01:52,850 защото 15 стр. е на 16-ти буква от азбуката. 28 00:01:52,850 --> 00:01:56,750 Следващото писмо в обикновен текст е разстояние, така че няма да се премести. 29 00:01:56,750 --> 00:02:00,420 И индексът на ключовата дума няма да се промени. 30 00:02:00,420 --> 00:02:05,440 >> Тогава следващата буква в обикновен текст е л, изместен от, които не превключва 31 00:02:05,440 --> 00:02:10,930 равнината на текста на писмото на всички, защото а е 0th буква от азбуката. 32 00:02:10,930 --> 00:02:14,980 Процесът продължава, ускоряване на дума характер всеки път, когато има 33 00:02:14,980 --> 00:02:16,840 писмо в обикновен текст. 34 00:02:16,840 --> 00:02:21,850 След последната буква на ключовата дума е достигната, ключовата дума увива около и 35 00:02:21,850 --> 00:02:25,890 смени на следващия обикновена Текст писмо от стр.. 36 00:02:25,890 --> 00:02:27,170 X lvne NOH. 37 00:02:27,170 --> 00:02:29,180 Колко романтично. 38 00:02:29,180 --> 00:02:33,120 >> Така даден герой, как да конвертирате че в съответния 39 00:02:33,120 --> 00:02:34,590 Cipher смяна? 40 00:02:34,590 --> 00:02:37,870 Опитайте сравняване на ASCII стойности на смяна. 41 00:02:37,870 --> 00:02:41,530 Може би можете да намерите връзка между буквите и техните 42 00:02:41,530 --> 00:02:44,550 азбучен индекс използва ASCII математика. 43 00:02:44,550 --> 00:02:48,850 Можеш ли да добавите или извадите един символ от друга, за да получите 44 00:02:48,850 --> 00:02:51,630 ви желания резултат? 45 00:02:51,630 --> 00:02:55,480 >> Не забравяйте, че смени за главни и малки букви са еднакви. 46 00:02:55,480 --> 00:02:59,510 Така че може би ще трябва да се идентифицират два подобни формули да представляват 47 00:02:59,510 --> 00:03:03,570 на смени, една за главна дума характер, и един 48 00:03:03,570 --> 00:03:06,510 за малки един. 49 00:03:06,510 --> 00:03:10,630 >> На следващо място, не забравяйте, че ключовата дума аванси само ако герой в 50 00:03:10,630 --> 00:03:13,520 обикновен текст е писмо и че случай на обикновена 51 00:03:13,520 --> 00:03:16,020 текст трябва да се запази. 52 00:03:16,020 --> 00:03:20,280 Така че, ако погледнем на формулата за Vigenere смяна, има две индекс 53 00:03:20,280 --> 00:03:22,880 променливи, I и J. 54 00:03:22,880 --> 00:03:26,795 Един следи положението, в равнината текст и друга позиция 55 00:03:26,795 --> 00:03:27,910 в ключовата дума. 56 00:03:27,910 --> 00:03:32,960 Но си прав текст може да бъде много по-дълго от вашата ключова дума, като в този случай си 57 00:03:32,960 --> 00:03:38,290 дума индекс трябва да обгърне обратно до началото на ключовата дума. 58 00:03:38,290 --> 00:03:39,870 >> Как го правиш това? 59 00:03:39,870 --> 00:03:43,740 Нека да погледнем назад към модул оператор. 60 00:03:43,740 --> 00:03:47,280 Modulo се определя представляват остатъка за разделяне на две числа. 61 00:03:47,280 --> 00:03:50,680 Но това, което е действително практическо използване на модул? 62 00:03:50,680 --> 00:03:54,340 >> Е, да речем, че имате голяма група от хора, и вие трябва да се разделят на 63 00:03:54,340 --> 00:03:55,100 три групи. 64 00:03:55,100 --> 00:03:59,500 Един от начините да се разделят хората на групи е да ги изброи. 65 00:03:59,500 --> 00:04:03,520 Можете броя на групите група номер 1, 2 и 3. 66 00:04:03,520 --> 00:04:08,510 Първият човек, ще кажа едно, следващата 2, следващата 3. 67 00:04:08,510 --> 00:04:12,860 Лицето, след това ще кажа едно, тъй като не е от група 4, и 68 00:04:12,860 --> 00:04:15,880 броенето започва отначало от там. 69 00:04:15,880 --> 00:04:18,209 >> Можете да използвате модул за направи същото нещо. 70 00:04:18,209 --> 00:04:22,680 Този път Групите бъде група 0, 1, и 2. 71 00:04:22,680 --> 00:04:26,960 Първият човек, брой 1 модул 3, е 1. 72 00:04:26,960 --> 00:04:29,830 Лице 2 по модул 3 е 2. 73 00:04:29,830 --> 00:04:32,460 Лице 3 по модул 3 е 0. 74 00:04:32,460 --> 00:04:38,470 Лице 4 по модул 3 дава един, и така групите може да обгърне. 75 00:04:38,470 --> 00:04:44,700 >> Така че, ако сте приели индекс и модул този индекс от максималния размер, на 76 00:04:44,700 --> 00:04:49,820 Резултатът никога няма да бъде по-голям или равен на размера, което означава, че 77 00:04:49,820 --> 00:04:52,330 може да се увеличи на индекса, както толкова, колкото искате. 78 00:04:52,330 --> 00:04:57,400 И толкова дълго, колкото можете по модул на индекса от някакъв номер, вие няма да получите редица 79 00:04:57,400 --> 00:04:58,510 по-голям от това. 80 00:04:58,510 --> 00:05:04,500 Така че ние имаме 10 души, вместо 5, и всички те ще се определя на групи 81 00:05:04,500 --> 00:05:07,480 номер 0, 1 или 2. 82 00:05:07,480 --> 00:05:11,680 >> Опитайте се да приложите тази за опаковане на над ключовата дума, с изключение вместо сортиране 83 00:05:11,680 --> 00:05:16,050 хората в групата номера искате Индексът на ключовата дума, така че да можете да 84 00:05:16,050 --> 00:05:19,080 получи правото характер за смени без да се надвишава 85 00:05:19,080 --> 00:05:21,836 дължината на низа. 86 00:05:21,836 --> 00:05:24,790 С това, имате Vigenere шифър. 87 00:05:24,790 --> 00:05:27,790 Моето име е Zamyla, и това е CS50. 88 00:05:27,790 --> 00:05:32,566