>> Роб: Здраво, јас сум Роб, и ајде да се дешифрира програмата Vigenere.
Значи прво нешто што треба да направите е да бидете дека корисникот внесе она што го очекуваше
ги во командната линија.
Па ако argc не е 2 тоа значи или корисникот не внесете стрингот ние
сакате да биде со користење како нашата енкрипција стринг, или тие
влезе премногу работи.
И ние не знаат што да прават со оние други работи.
>> Па ние да им каже она што тие треба да се внесе.
И ние се вратат.
Сега, претпоставувајќи дека argc беше 2, може да се продолжи со остатокот на програмата.
>> Ние алијас името на avg [1]
во променлива клучен збор.
Така што ние не треба да користи името avg [1]
текот на остатокот од програмата.
А можеби ќе заборавам што тоа значи дека и така натаму.
Клучниот збор е многу поубав име.
И ние веднаш ќе го дофати должина од нашите клучни зборови во право тука.
>> Добро, па сега ние сакаме да се провери дека нашите клучни зборови е всушност валидна.
Клучниот збор се користи за да го криптирате жици само треба да биде азбучен
карактери.
Ако корисникот влезе не-азбучен карактери, ние треба да се каже, клучен збор
мора да содржат само преку Z и потоа да се вратат.
Па ова за јамка iterates над сите ликови од нашите клучни зборови, проверка
дека ако некој не е азбучен потоа ние треба да се печати кои предупредување.
>> Сега, откако сме се дојде до оваа точка, ние знаеме дека стрингот треба да бидат точни.
Клучни зборови мора да бидат точни.
И сега ние треба да ја добие пораката од корисникот дека тие нас не сакаат да
криптирате со клучните фраза.
Па да се добие таа порака, имаме направи додека јамка што се случува да
постојано добие стринг од корисникот додека не внесете валидна стринг.
>> Продолжување, гледаме тука на оваа променлива, int nun_letters_seen.
Ќе видиме зошто треба дека во вториот.
Но, ова за телефонска линија ќе iterate од i изнесува 0 целиот пат до јас
еднакво n, што значи ние сме процесирањето над сите можни
карактери во нашата порака.
Бидејќи ние сакаме да го криптирате сите ликовите во нашата порака.
Така забележите правиме ако (isalphamessage [I], бидејќи ние не сакаме да го криптирате
знаци кои не се по азбучен ред.
Ако постојат симболи, простори, или броеви, ние не
сакате да криптирате нив.
>> Сега, претпоставувајќи дека тоа е азбучен, ние прво сакате да дознаам што ние
всушност сакаат да го криптирате пораката користите.
Па што мислам кога го велам тоа?
>> Ајде да се претпостави дека клучните фраза корисникот влезе беше ABC.
Тоа е она што ние сме користејќи да криптирате.
Сега, наивно, ние сметаме дека значи дека ние сакаме да го криптирате првиот карактер
на нашата порака до 0, бидејќи средство ротирање на карактер од 0.
>> Ние сакаме да го криптирате Вториот знак од 1, трета карактер со 2,
на четвртиот знак од 0, петти од 1, шест од 2, и така натаму.
Но се сеќавам, дека ние сакаме да го прескокнете простори и симболи и броеви.
Ова значи дека ако корисникот влегле Здраво светот како порака
дека тие сакаат да го криптирате, тогаш ние сакаме да го криптирате час до 0
одговара на a, на e од 1, l со 2, l од 0, o од 1.
Ние сакаме да го прескокнете простор, шифрирана на w од 2, o од 0, 1, 2, 0.
Така забележите, ако ние не го прескокнаа простор, тогаш ќе имаме шифрирана
на W со 0 и заврши со неточни стринг.
>> Добро, тоа е она што ние треба променливата num_letters_seen за.
Ако бевме само ќе го криптирате користење овој метод, кој не прескокнете
симболи, празни места, и броеви, тогаш ние само може да го користи променливата i како што
да индексира во нашите клучни фраза со.
Ние треба да ги користите num_letters_seen да се задржи ги пратите на вистинските место во
клучните фраза што сакаме да индекс.
Па еве, ако клучниот збор имаме, ако num_letter_seen современи keyword_length, па
зошто не ни треба да се современи по должина на клучни зборови?
>> Па, Здраво светот беше добар пример.
Ако клучниот збор беше ABC, тогаш ние треба постојано да го криптирате од тогаш б
тогаш C, а потоа заврши назад наоколу, a, b, c, a, b, c.
Значи ние треба да се современи по должина на клучни зборови со цел да се заврши назад наоколу.
>> Значи, ако ова е латинична буква, тогаш ние сакаме да го криптирате од страна на
позиција на таа буква во азбуката, каде што го добиваме од само
одземање надвор град А И Слично на тоа, за мали букви, ние
може да го добиете клучот што сакаме со одземање на мали a.
Значи без оглед на тоа дали писмото во клучните фраза е капитал или
мали букви, ние ќе шифрирање на истиот износ.
>> Сега дека ние имаме клучот, што гледаме тука, дека ако пораката што е латинична
карактер, тогаш ние сакаме да се пресмета позиција во писмото на кој
карактер, да додадете нашиот клуч за неа, заврши назад околу, така што ако отидовме минатото
z ние се вратиме на А, Б, Ц, и така натаму.
Потоа, конечно, да додадете назад на капитал А Па ние смена назад во [? ASCII?]
спектар на овие карактери наместо на нумерички позиција во азбуката
од овие карактери.
>> И тоа го правиме истото за мали знаци.
Освен што сакаме да го одземе од мали А и да го додадете повторно на во
крајот, мали букви а.
Забележите дека num_letter_seen е само зголемува ако пораката бев
азбучен.
Ова е како да го прескокнете празни места, симболите, како и броеви во нашите клучни фраза, бидејќи
num_letter_seen е она што ние сме со користење да индексира во нашиот клучен збор.
>> Конечно, на крајот, сега таа порака јас е шифрирана, ние
испечатите порака i.
И тоа е тоа.
Моето име е Роб.
И ова е Vigenere.
>> [Музички]