ROB: Ahoj, ja som Rob, a poďme dešifrovať programu Vigenère. Takže prvá vec, ktorú musíme urobiť, je Uistite sa, že užívateľ zadal, čo sme očakávali aby na príkazovom riadku. Takže ak argc nie 2 to znamená, že buď používateľ neuviedol reťazec my chcete používať ako náš šifrovanie reťazec, alebo sa zadali príliš veľa vecí. A nevieme, čo robiť s týmito ďalšími vecami. Tak sme im povedať, čo sa mali vstúpiť. A my sme sa vrátiť. Teraz, za predpokladu, že argc je 2, môžeme pokračovať so zvyškom programu. Sme alias názov argv [1] do premennej kľúčové slovo. Takže nemáme na používať názov argv [1] po zvyšok programu. A možno budeme zabudnúť na to, čo to znamená, že, a tak ďalej. Kľúčové slovo je oveľa krajší meno. A budeme hneď chytiť dĺžku nášho kľúčového slova tu. OK, tak teraz chceme skontrolovať, či naše kľúčové slovo je v skutočnosti platí. Kľúčové slovo, ktoré používame na zašifrovanie reťazca by mal byť len abecedy znaky. Je-li užívateľ zadal non-abecedný znaky, mali by sme povedať, kľúčové slovo musí obsahovať iba priechodná Z a potom sa vrátiť. Takže to pre slučky iteruje cez všetky znaky nášho kľúčového slova, kontrolu že ak jeden nie je abecedný potom musíme vytlačiť tento varovanie. Teraz, akonáhle sa dostaneme do tohto bodu, vieme, že reťazec musí byť správne. Kľúčové slovo musí byť správne. A teraz musíme dostať správu od užívateľ, ktorý nás chce šifrovanie s týmto kľúčové frázy. Takže si tú správu, máme robiť, kým slučka, čo sa deje na neustále sa reťazec od užívateľa kým nevstúpi platný reťazec. Pokračovanie, tu vidíme túto premennú, int nun_letters_seen. Uvidíme, prečo potrebujeme že v sekunde. To pre slučke sa ale bude iterovat od i rovná 0 po celú cestu až do i sa rovná n, čo znamená, že sme iterácie cez všetky možné znaky v našej správe. Pretože chceme zašifrovať všetky postavy v našej správe. Takže všimnete, čo robíme, ak (isalphamessage [I], pretože nechceme, aby šifrovanie znaky, ktoré nie sú podľa abecedy. Ak sú symboly, medzery, alebo čísla, my nie chcete zašifrovať ty. Teraz, za predpokladu, že je abecedný, sme sa prvýkrát chcú zistiť, čo sa vlastne chcete zašifrovať Správa pomocou. Takže to, čo mám na mysli, že? Predpokladajme, že kľúčové frázy užívateľ zadal bol abc. To je to, čo sme pomocou šifrovania. Teraz, naivne sa domnievame, to znamená, že chceme zašifrovať prvý znak našej správy o 0, pretože prostriedok otáčaním znak 0. Chceme zašifrovať druhý znak o 1, tretí znak o 2, štvrtý znak od 0, piaty o 1, šiesty o 2, a tak ďalej. Ale pamätajte, že chceme preskočiť medzery a symboly a čísla. To znamená, že keby vstúpil užívateľa hello world ako správa ktoré chcete zašifrovať, potom chceme šifrovať h od 0 zodpovedajúce a, e o 1, l o 2, l o 0, o ktoré jeden. Chceme preskočiť priestor, šifrované w o 2, o o 0, 1, 2, 0. Takže všimnúť, keby sme preskočili priestor, potom by sme šifrovaná w od 0 a skončil s nesprávny reťazec. OK, to je to, čo potrebujeme premennú num_letters_seen pre. Ak by sme sa práve chystá na šifrovanie pomocou Táto metóda, ktorá nemá preskočiť symboly, medzery, a čísla, potom mohol použiť premennú aj ako to, čo index do našej kľúčové frázy sa. Musíme využiť num_letters_seen, aby stopa na skutočné miesto v kľúčové frázy, ktoré chceme do indexu. Tak tu, ak kľúčové slovo máme, ak num_letter_seen mod keyword_length, tak Prečo musíme mod podľa dĺžky kľúčového slova? No, ahoj svet bol dobrým príkladom. Je-li kľúčové slovo bolo abc, potom musíme priebežne šifrovať by potom b potom c, potom zabaliť späť okolo, a, b, c, a, b, c Takže musíme mod podľa dĺžky kľúčového slova aby sa zabaliť späť okolo. Takže ak to je veľké písmeno, potom chceme zašifrovať pomocou postavenie tohto listu v abecede, ktoré sme sa len o odpočítaním z kapitálového A. A podobne, pre malé písmená, sme možno získať kľúč, ktorý chceme pomocou odpočíta sa malé písmená A. Takže bez ohľadu na to, či je písmeno v kľúčové frázy bola kapitálu alebo malé písmeno, budeme šifrovať o rovnakú sumu. Teraz, keď máme kľúč, vidíme tu, že ak správa aj je veľká charakter, potom chceme vypočítať pozície v abecede, ktoré charakter, pridať náš kľúč k tomu, zabaliť späť asi tak, že keď sme išli okolo z vrátime k a, b, c, a tak ďalej. Potom, konečne, pridať späť na kapitálovom A. Takže sme sa presunúť späť do [? Ascii?] mnohé z týchto znakov namiesto číselné pozície v abecede z týchto znakov. A robíme to isté pre malými písmenami. Okrem chceme odpočítať z malými písmenami a pridať späť v koniec, malé písmená. Všimnite si, že num_letter_seen je iba zvýši chcete správu som bol podľa abecedy. To je, ako sme sa preskočiť medzery, symboly, a Čísla v našej kľúčové frázy, pretože num_letter_seen je to, čo sme pomocou index do nášho kľúčového slova. A konečne, na konci, teraz, že správa i bolo zakódované, sme vytlačiť správu. A to je všetko. Volám sa Rob. A to je Vigenère. [MUSIC PLAYBACK]