>> [За възпроизвеждане на музика]
>> ZAMYLA CHAN: Да се ​​прилагат Vigenere, малко по-
осигуряване шифър от Цезар.
В прав текст е кодирана използване низ вместо число.
Всяка буква, в обикновен текст се измества от
писмо в ключовата дума.
>> В този пример, ключовата дума Ohai, O съответства на изместване на 14, Н до
измести от 7; A, смяна на 0 и I изместване на 8.
Ако сте успешно си Caesar шифър, че ще бъде хубаво
рамка, от която могат да се реализират Vigenere.
Както можете да видите, пуснете Vigenere шифър с един символ като
Ключовата дума е едно и също нещо като шифър на Цезар.
>> Същите стъпки се прилагат за Vigenere тъй като те са в Caesar.
Ключовата дума е на втора линия команда аргумент, така че достъп до него с argv1.
След това трябва да се провери, че ключът Думата е наистина всичко азбучен.
Тук е мястото, където е алфа може да дойде по-удобно.
Ако имате валиден дума, вие получавате сила от страна на потребителя и след това
сте готови да пиша с шифър.
>> Шифърът Vigenere формула е подобна да Caesar формула, с изключение на сега к
става к индекс J, което показва, на у-тата буква от дума.
Нека да преминете през този процес.
Да речем, че иска да изпрати послание към вашия катастрофата, аз те харесвам, но не
Искам всички да знаят.
Така че използвате Vigenere шифър с дума панда, защото, добре, вие също
харесва пандите.
>> Първото писмо, I, ще бъдат пренасочени от стр., като X, 15 букви след I,
защото 15 стр. е на 16-ти буква от азбуката.
Следващото писмо в обикновен текст е разстояние, така че няма да се премести.
И индексът на ключовата дума няма да се промени.
>> Тогава следващата буква в обикновен текст е л, изместен от, които не превключва
равнината на текста на писмото на всички, защото а е 0th буква от азбуката.
Процесът продължава, ускоряване на дума характер всеки път, когато има
писмо в обикновен текст.
След последната буква на ключовата дума е достигната, ключовата дума увива около и
смени на следващия обикновена Текст писмо от стр..
X lvne NOH.
Колко романтично.
>> Така даден герой, как да конвертирате че в съответния
Cipher смяна?
Опитайте сравняване на ASCII стойности на смяна.
Може би можете да намерите връзка между буквите и техните
азбучен индекс използва ASCII математика.
Можеш ли да добавите или извадите един символ от друга, за да получите
ви желания резултат?
>> Не забравяйте, че смени за главни и малки букви са еднакви.
Така че може би ще трябва да се идентифицират два подобни формули да представляват
на смени, една за главна дума характер, и един
за малки един.
>> На следващо място, не забравяйте, че ключовата дума аванси само ако герой в
обикновен текст е писмо и че случай на обикновена
текст трябва да се запази.
Така че, ако погледнем на формулата за Vigenere смяна, има две индекс
променливи, I и J.
Един следи положението, в равнината текст и друга позиция
в ключовата дума.
Но си прав текст може да бъде много по-дълго от вашата ключова дума, като в този случай си
дума индекс трябва да обгърне обратно до началото на ключовата дума.
>> Как го правиш това?
Нека да погледнем назад към модул оператор.
Modulo се определя представляват остатъка за разделяне на две числа.
Но това, което е действително практическо използване на модул?
>> Е, да речем, че имате голяма група от хора, и вие трябва да се разделят на
три групи.
Един от начините да се разделят хората на групи е да ги изброи.
Можете броя на групите група номер 1, 2 и 3.
Първият човек, ще кажа едно, следващата 2, следващата 3.
Лицето, след това ще кажа едно, тъй като не е от група 4, и
броенето започва отначало от там.
>> Можете да използвате модул за направи същото нещо.
Този път Групите бъде група 0, 1, и 2.
Първият човек, брой 1 модул 3, е 1.
Лице 2 по модул 3 е 2.
Лице 3 по модул 3 е 0.
Лице 4 по модул 3 дава един, и така групите може да обгърне.
>> Така че, ако сте приели индекс и модул този индекс от максималния размер, на
Резултатът никога няма да бъде по-голям или равен на размера, което означава, че
може да се увеличи на индекса, както толкова, колкото искате.
И толкова дълго, колкото можете по модул на индекса от някакъв номер, вие няма да получите редица
по-голям от това.
Така че ние имаме 10 души, вместо 5, и всички те ще се определя на групи
номер 0, 1 или 2.
>> Опитайте се да приложите тази за опаковане на над ключовата дума, с изключение вместо сортиране
хората в групата номера искате Индексът на ключовата дума, така че да можете да
получи правото характер за смени без да се надвишава
дължината на низа.
С това, имате Vigenere шифър.
Моето име е Zamyla, и това е CS50.