ROB: Ahoj, já jsem Rob, a pojďme dešifrovat programu Vigenere. Takže první věc, kterou musíme udělat, je Ujistěte se, že uživatel zadal, co jsme očekávali aby na příkazovém řádku. Takže pokud argc není 2 to znamená, že buď uživatel nezadal řetězec my chcete používat jako náš šifrování řetězec, nebo se zadali příliš mnoho věcí. A nevíme, co dělat s těmito dalšími věcmi. Tak jsme jim říct, co se měly vstoupit. A my jsme se vrátit. Nyní, za předpokladu, že argc je 2, můžeme pokračovat se zbytkem programu. Jsme alias název argv [1] do proměnné klíčové slovo. Takže nemáme na používat název argv [1] po zbytek programu. A možná budeme zapomenout na to, co to znamená, že, a tak dále. Klíčové slovo je mnohem hezčí jméno. A budeme hned chytit délku našeho klíčového slova tady. OK, tak teď chceme zkontrolovat, zda naše klíčové slovo je ve skutečnosti platí. Klíčové slovo, které používáme k zašifrování řetězce by měl být jen abecedy znaky. Je-li uživatel zadal non-abecední znaky, měli bychom říci, klíčové slovo musí obsahovat pouze průchozí Z a pak se vrátit. Takže to pro smyčky iteruje přes všechny znaky našeho klíčového slova, kontrolu že pokud jeden není abecední pak musíme vytisknout tento varování. Nyní, jakmile se dostaneme do tohoto bodu, víme, že řetězec musí být správné. Klíčové slovo musí být správné. A teď musíme dostat zprávu od uživatel, který nás chce šifrování s tímto klíčové fráze. Takže si tu zprávu, máme dělat, zatímco smyčka, co se děje na neustále se řetězec od uživatele dokud nevstoupí platný řetězec. Pokračování, zde vidíme tuto proměnnou, int nun_letters_seen. Uvidíme, proč potřebujeme že ve vteřině. To pro smyčce se ale bude iterovat od i rovná 0 po celou cestu až do i se rovná n, což znamená, že jsme iterace přes všechny možné znaky v naší zprávě. Protože chceme zašifrovat všechny postavy v naší zprávě. Takže všimnete, co děláme, pokud (isalphamessage [I], protože nechceme, aby šifrování znaky, které nejsou podle abecedy. Pokud jsou symboly, mezery, nebo čísla, my ne chcete zašifrovat ty. Nyní, za předpokladu, že je abecední, jsme se poprvé chtějí zjistit, co se vlastně chcete zašifrovat Zpráva pomocí. Takže to, co mám na mysli, že? Předpokládejme, že klíčové fráze uživatel zadal byl abc. To je to, co jsme pomocí šifrování. Nyní, naivně se domníváme, to znamená, že chceme zašifrovat první znak naší zprávy o 0, protože prostředek otáčením znak 0. Chceme zašifrovat druhý znak o 1, třetí znak o 2, čtvrtý znak od 0, pátý o 1, šestý o 2, a tak dále. Ale pamatujte, že chceme přeskočit mezery a symboly a čísla. To znamená, že kdyby vstoupil uživatele hello world jako zpráva které chcete zašifrovat, pak chceme šifrovat h od 0 odpovídající a, e o 1, l o 2, l o 0, o které jeden. Chceme přeskočit prostor, šifrovaná w o 2, o o 0, 1, 2, 0. Takže všimnout, kdybychom přeskočili prostor, pak bychom šifrována w od 0 a skončil s nesprávný řetězec. OK, to je to, co potřebujeme proměnnou num_letters_seen pro. Pokud bychom se právě chystá na šifrování pomocí Tato metoda, která nemá přeskočit symboly, mezery, a čísla, pak mohl použít proměnnou i jako to, co index do naší klíčové fráze se. Musíme využít num_letters_seen, aby stopa na skutečné místo v klíčové fráze, které chceme do indexu. Tak tady, pokud klíčové slovo máme, pokud num_letter_seen mod keyword_length, tak Proč musíme mod podle délky klíčového slova? No, ahoj svět byl dobrým příkladem. Je-li klíčové slovo bylo abc, pak musíme průběžně šifrovat by pak b pak c, pak zabalit zpět kolem, a, b, c, a, b, c. Takže musíme mod podle délky klíčového slova aby se zabalit zpět kolem. Takže pokud to je velké písmeno, pak chceme zašifrovat pomocí postavení tohoto dopisu v abecedě, které jsme se jen o odečtením z kapitálového A. A podobně, pro malá písmena, jsme lze získat klíč, který chceme pomocí odečte se malá písmena A. Takže bez ohledu na to, zda je písmeno v klíčové fráze byla kapitálu nebo malé písmeno, budeme šifrovat o stejnou částku. Teď, když máme klíč, vidíme zde, že pokud zpráva i je velká charakter, pak chceme vypočítat pozice v abecedě, které charakter, přidat náš klíč k tomu, zabalit zpět asi tak, že když jsme šli kolem z vrátíme k a, b, c, a tak dále. Pak, konečně, přidat zpět na kapitálovém A. Takže jsme se přesunout zpět do [? Ascii?] řada z těchto znaků namísto číselné pozice v abecedě z těchto znaků. A děláme to samé pro malými písmeny. Kromě chceme odečíst z malými písmeny a přidat zpět v konec, malá písmena. Všimněte si, že num_letter_seen je pouze zvýší-li zprávu jsem byl podle abecedy. To je, jak jsme se přeskočit mezery, symboly, a Čísla v naší klíčové fráze, protože num_letter_seen je to, co jsme pomocí index do našeho klíčového slova. A konečně, na konci, teď, že zpráva i bylo zakódováno, jsme vytisknout zprávu. A to je vše. Jmenuji se Rob. A to je Vigenere. [MUSIC PŘEHRÁVÁNÍ]