ROB: Sveiki, aš esu Robas, ir tegul iššifruoti Vigenere programa. Taigi pirmas dalykas, kurį reikia padaryti, tai tikras vartotojas įves tikėjomės juos į komandų eilutę. Taigi, jei argc nėra 2 tai reiškia, kad arba vartotojas neįtraukė eilutę mes nori būti naudojant kaip mūsų šifravimo eilutę, ar jie Buvo per daug dalykų. Ir mes nežinome, ką daryti su tų kitų dalykų. Taigi, mes pasakyti jiems, ką jie turėtų būti įrašytas. Ir mes grįžtame. Dabar, darant prielaidą, kad argc buvo 2, mes galime tęsti programos dalimi. Mes slapyvardžius į argv pavadinimas [1] į kintamojo raktinį žodį. Taigi, kad mes neturime naudoti pavadinimą argv [1] visoje programos dalimi. O gal mes pamiršti, ką tai reiškia, kad ir taip toliau. Raktažodis yra daug gražiau pavadinimas. Ir mes iš karto patraukti ilgis mūsų raktinį žodį čia. Gerai, kad dabar mes norime patikrinti, mūsų žodis yra iš tikrųjų galioja. Raktažodis mes naudojame užšifruoti stygos turėtų būti tik abėcėlės tvarka simbolių. Jei vartotojas įveda Neabėcėliniams ženklai, turėtume pasakyti, raktinis žodis turi būti tik gražų Z ir tada grįžti. Taigi tai dėl Ciklas per visus simbolių mūsų raktažodį, tikrinimo kad jei vienas nėra abėcėlės tada mums reikia spausdinti tą įspėjimą. Dabar, kai mes turime šiuo metu, mes žinome, kad seka turi būti teisinga. Raktažodis turi būti teisinga. Ir dabar mes turime gauti pranešimą iš vartotojo, kad jie nori mums užšifruoti su šios pagrindinės frazę. Taigi, norint gauti šią žinią, turime do while cikle, kad ketina nuolat gauti eilutę iš vartotojo kol jie įvesti galiojantį eilutę. Tęstinis, matome čia šį kintamąjį, int nun_letters_seen. Pamatysime, kodėl mes turime kad per sekundę. Bet tai už linijos ketina pakartoti nuo I lygus 0 visą kelią iki i Lygu n, o tai reiškia, mes Iteracja per visas įmanomas simbolių mūsų pranešimo. Kadangi mes norime užšifruoti visus su mūsų pranešimo simbolių. Taigi pastebėti mes, jei (isalphamessage [Turiu] nes mes nenorime, užšifruoti ženklai, kurie nėra abėcėlės. Jei yra simbolių, tarpų, arba numerius, mes ne norite šifruoti tų. Dabar, darant prielaidą, kad ji yra abėcėlinis, mes pirmiausia norime išsiaiškinti, ką mes iš tikrųjų norite užšifruoti pranešimas, naudojant. Taigi, ką aš turiu galvoje, kad? Tarkime, kad pagrindinis frazės vartotojo Įvestas abc. Štai ką mes naudojame, norėdami šifruoti. Dabar naiviai manome, kad tai reiškia, kad norime užšifruoti pirmąjį simbolį Mūsų Praneðimas 0, nes priemonės sukant charakterį 0. Mes norime užšifruoti antrą simbolį 1, trečiasis simbolis 2, Ketvirtasis požymis 0, penkta 1, 2 šešta, ir pan. Bet atsiminkite, kad mes norime praleisti erdvės ir simboliai ir numeriai. Tai reiškia, kad jei vartotojas buvo įrašytas hello world kaip pranešimą kad jie nori užšifruoti, tada norime užšifruoti h iki 0 atitinkanti a, e 1, l 2, iki 0 l iki 1 °. Mes norime praleisti vietos, saugiame iki 2 m, 0, 1, 2, 0, o. Taigi pastebėti, jei nebūtume praleisti erdvę, tada būtume užkoduota iki 0 W ir galų gale su neteisingas eilutę. Gerai, tai, ką mes turime kintamąjį num_letters_seen už. Jei mes tik ketina šifruoti naudojant šis metodas, kuris neturi praleisti simbolių, tarpų ir skaičiai, tada mes galima tiesiog naudoti kintamąjį i kaip kas indeksuoti į mūsų pagrindinę frazę. Mums reikia naudoti num_letters_seen išlaikyti kelio į faktinę vietą, į pagrindinis frazės, kad mes norime indeksą. Taigi čia, jei raktažodis turime, jei num_letter_seen mod keyword_length, todėl kodėl mes turime mod pagal raktažodį ilgio? Na, labas pasaulis buvo geras pavyzdys. Jei raktažodis abc, tada mes turime nuolat šifruoti pagal tada b tada C, tada wrap atgal aplink, , b, c, b, c. Taigi mums reikia mod pagal raktažodį ilgio siekiant wrap atgal aplink. Taigi, jei tai didžiosios raidės, tada mes norime užšifruoti pagal pozicija tą abėcėlės raidė, kurios mes tiesiog atimant iš kapitalo A. ir Panašiai mažųjų raidžių, mes gali gauti raktą, kad mes norime, padarytais atimant iš mažosiomis raidėmis a. Taigi neatsižvelgiant į tai, ar laiškas į pagrindinių frazė buvo kapitalą arba mažoji raidė, mes ketiname užšifruoti ta pačia suma. Dabar, mes turime raktą, mes matome čia, kad jei pranešimą i didžiąsias simbolis, tai mes norime apskaičiuoti pozicija to abėcėlė pobūdis, pridėti savo raktą į jį, apvyniokite atgal maždaug taip, kad jei mes buvo praeityje z mes einame atgal į a, b, c, ir pan. Tada, pagaliau, vėl pridėti kapitalui A. Taigi mes perkelti atgal į [? ASCII?] diapazonas iš šių simbolių, o ne skaitmeninis pozicija abėcėlėje Šių simbolių. Ir mes tai darome tą patį dalyką mažosiomis raidėmis. Išskyrus norime atimti iš mažosiomis Pridėkite jį ir atgal į pabaigos, mažosiomis raidėmis. Atkreipkite dėmesį, kad num_letter_seen tik padidinamas, jei pranešimas buvau Abėcėlinis. Tai, kaip mes praleisti tarpai, simboliai ir numeriai mūsų pagrindinis frazės, nes num_letter_seen yra tai, ką mes naudojame indeksuoti į mūsų žodį. Galiausiai, galų gale, dabar tokia žinutė i buvo užšifruotas, mes spausdinti pranešimą i. Štai ir viskas. Mano vardas yra Rob. Ir tai Vigenere. [Muzikavimo]