>> 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]