[Predvajanja glasbe] ZAMYLA CHAN: Dajva izvajati Vigenere, nekoliko bolj zagotoviti šifra kot Cezarja. Golo besedilo je šifrirane uporabo Niz namesto celo število. Vsako črko v golo besedilo se premakne za črka na ključno besedo. V tem primeru je ključna beseda ohai, O ustreza premiku 14, H za premik z dne 7., A, premik 0, in sem premik 8.. Če ste se uspešno izvaja svoje Cezarjeva šifra, to bo lepo okvir, iz katerega ste lahko izvajajo Vigenere. Kot lahko vidite, teče Vigenere šifra z eno lastnost Ključna beseda je ista stvar kot Cezarjeva šifra. Enak postopek velja za Vigenere kot so to storili pri cesarju. Ključna beseda je drugi ukazni vrstici Trditev, tako da je dostop z argv1. Potem morate preveriti, da je ključ Beseda je res vse po abecednem redu. Tukaj je, kjer je alfa lahko pridejo v priročni. Če imate veljavno ključno besedo, boste dobili Moč od uporabnika, in nato ste pripravljeni za encipher. Šifra Formula Vigenere je podoben za Cezarja formuli, razen zdaj k postane k indeks j, z navedbo j-ti pismo ključno besedo. Stopimo skozi ta proces. Povejte, da ste želeli poslati sporočila, da svojim crash, vam je všeč, vendar jih ne vsi želijo vedeti. Torej, uporabite Vigenere šifre z Ključna beseda panda, ker, no, saj tudi všeč pandas. Prvo pismo, jaz, se bo premaknilo po p, daje x, 15 črk po I, ker 15 p 16. črka abecede. Naslednja črka v golo besedilo je prostora, tako da se ne bo spremenila. In indeks ključno besedo ne spremeni. Potem naslednja črka v golo besedilo je l, premakne, ki ne vklopi golo besedilo pisma sploh, ker je 0. črka abecede. Proces se nadaljuje, napreduje Ključna beseda lik vsakič tam črka v golo besedilo. Ko je zadnja črka v ključno besedo dosežena, ključne besede oblije in premiki na naslednji ravnini Besedilo pismo p. X lvne noh. Kako romantično. Torej, dal znak, kako spremeniti da v ustrezni šifra premik? Poskusite primerjavo ASCII Vrednosti na izmeno. Morda boste našli odnos Med črkami in njihovimi abecedni indeks pomočjo matematike ASCII. Lahko dodate ali odštejemo en znak od drugega, da bi dobili vam želeni rezultat? Ne pozabite, da so premiki za velikimi črkami in male črke so enaki. Torej, morda boste morali določiti dva podobne formule za zastopanje premik, eden za velikimi črkami Ključna beseda značaj, in ena za malimi črkami eno. Dalje, ne pozabite, da so ključne napredek samo če lik v golo besedilo je pismo in da Primer navaden Besedilo je treba ohraniti. Torej, če pogledamo formulo za Vigenere premik, obstajata dva indeksa spremenljivke, i in j. Ena beleži položaj v preprostem besedilo in drugi položaj na ključno besedo. Vendar vaš golo besedilo lahko veliko več kot ključno besedo, pri čemer si Indeks ključna beseda mora ovijte okoli nazaj na začetku ključno besedo. Kako ste to naredili? Poglejmo nazaj modulo operator. Modul je definiran je preostanek delitve dveh številk. Ampak kaj je dejansko praktično uporaba modulu? No, recimo, da imate veliko skupino ljudje, in boste morali razdeliti na tri skupine. Eden od načinov za razdelitev ljudi v skupinah je, da so jih štej. Vi število skupino skupin številka 1, 2 in 3. Prva oseba, ki bo rekel: 1, Naslednji 2, 3 Naslednji. Oseba, potem bo torej 1, ker ni skupina 4, in Število začne čez od tam. Lahko uporabite modulo za narediti isto stvar. Tokrat bodo skupine bo skupina 0, 1 in 2. Prva oseba, število 1 modulo 3, 1. Oseba 2 modulo 3 je 2. Oseba 3 modulo 3 je 0. Oseba 4 modulu 3. daje 1, in tako skupine lahko ovijte okoli. Torej, če ste vzeli indeks in modulo da indeks z največjo velikostjo, Rezultat ne bo nikoli več ali enaka velikosti, kar pomeni, da lahko poveča indeks kot toliko, kot bi si želeli. In tako dolgo, kot ste modulu indeks, ki ga nekaj več, ne boste dobili več večja kot to. Torej imamo 10 ljudi, namesto 5, in da bi dobili vse uvrstiti v skupine število 0, 1, ali 2. Poskusi, da se ta za zavijanje preko ključne besede, razen namesto sortiranje ljudi v številkah skupini želite Indeks ključno besedo, tako da lahko dobili pravo znak za premik ne sme preseči dolžina niza. S tem, ko imate Vigenere šifra. Moje ime je Zamyla, in to je CS50.