>> [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.