[Přehrávání hudby] ZAMYLA CHAN: Pojďme realizovat Vigenere, o něco více zajistit šifru, než Caesar. Prostý text zašifrován pomocí řetězec namísto celé číslo. Každý abecední znak prostý text posunut písmeno klíčového slova. V tomto příkladu, klíčové slovo Ohai, O odpovídá posunu 14, H na posun 7, A, posun 0, a já posunu 8. Pokud jste úspěšně realizovala svůj Caesarova šifra, bude to pěkné rámec, ze kterého mohou realizovat Vigenere. Jak můžete vidět, běh Vigenere šifra s jedním charakteru jako Klíčové slovo je totéž jako kód Caesar. Stejný postup platí pro Vigenere jako tomu bylo v Caesarovi. Klíčové slovo je druhý příkazového řádku Argument, takže k ní přistupovat s argv1. Poté je třeba ověřit, že klíč slovo je opravdu vše, abecední. Zde je místo, kde je alfa může přijít vhod. Pokud máte platný klíčové slovo, dostanete síla od uživatele, a pak jste připraveni zašifrovat. Šifra Vigenere vzorec je podobný Caesar se vzorci, s výjimkou nyní k se k dolní index j, což znamená, j-tý písmeno klíčového slova. Pojďme krok v rámci tohoto procesu. Řekněme, že jste chtěli poslat zprávu do havárie, mám tě rád, ale ne Chci, aby všichni věděli. Takže použít Vigenère kód s Klíčové slovo panda, protože, no, je také jako pandy. První dopis, budu se posune podle p, kdy X, 15 písmen co jsem, protože 15 p je 16. písmeno abecedy. Další písmeno ve formátu prostého textu je prostor, takže se nelze přesouvat. A index klíčového slova se nezmění. Pak další písmeno ve formátu prostého textu je l, posunuté o, která se neposune holý text dopisu vůbec, protože je 0. písmeno abecedy. Tento proces pokračuje, postupující Klíčové slovo znak pokaždé, když je dopis v prostém textu. Po poslední písmeno v klíčové slovo dosaženo, klíčové slovo se zalomí kolem a se přesune do dalšího pláni Text Dopis p.. X lvne noh. Jak romantické. Takže vzhledem charakter, jak si převést , že do příslušné Cipher posun? Zkuste porovnání ASCII hodnoty k posunu. Třeba u nás najdeš vztah mezi písmeny a jejich abecední rejstřík pomocí ASCII matematiky. Můžete přidat nebo ubrat jeden znak z jiného dostat jste požadovaný výsledek? Pamatujte si, že posuny pro velká a malá písmena jsou stejné. Takže možná budete muset identifikovat dva podobných vzorců představují posun, jeden pro velká Klíčové slovo znak, a jeden na malá písmena jeden. Dále nezapomeňte, že klíčové slovo zálohy pouze v případě, že znak holý text je dopis, a že případ prostý Text musí být zachována. Takže pokud se podíváme na vzorec pro Vigenere posun, jsou tam dva index proměnných i a j. Jeden udržuje postavení v obyčejný textu, a další pozice na klíčové slovo. Ale tvůj holý text může být mnohem delší než vaše klíčové slovo, v tom případě bude vaše Klíčové slovo index musí přetočit zpět na začátek klíčového slova. Jak to děláte? Podívejme se na modulo operátor. Modulo definován, zbytek dělení dvou čísel. Ale to, co je skutečné praktické použití modulo? No, řekněme, že máte velkou skupinu lidí, a vy třeba rozdělit do tří skupin. Jeden způsob, jak rozdělit lidi do skupin je nechat odpočítávat. Ty počet skupin skupinu číslo 1, 2, a 3.. První člověk řekne 1, další 2, 3 další. Osoba, po které se bude říkat: 1, protože není skupina 4, a Počet začíná znovu od tam. Můžete použít modulo se to samé. Tentokrát skupiny být skupina 0, 1, 2 a. První osoba, číslo 1 modulo 3, 1. Osoba 2 modulo 3 je 2. Osoba 3 modulo 3 je 0. Osoba 4 modulo 3 je 1, a tak skupiny může obtékat kolem. Takže pokud budete mít index a Modulo že index o maximální velikosti, Výsledkem bude nikdy být větší nebo , které odpovídá velikosti, což znamená, že může zvýšit index jako stejně jako byste chtěli. A jak dlouho budete modulo index nějaké číslo, nebudete získat řadu větší, než je. Takže máme 10 lidí, místo 5 a všichni by se zařazeny do skupin číslo 0, 1, nebo 2. Snažte se aplikovat na balení po klíčové slovo, kromě namísto třídění lidi do skupin čísel chcete Index klíčových slov, takže si můžete ten správný znak pro přejít bez překročení délka řetězce. S tím, máte Vigenere šifra. Jmenuji se Zamyla, a to je CS50.