[Muusika mängib] ZAMYLA CHAN: Teeme rakendada Vigenere, veidi rohkem kindlustada salakiri kui Caesar. Lihtteksti šifreeritud kasutades string asemel täisarv. Iga täht on lihtteksti nihutatakse kirja märksõna. Selles näites märksõna Ohai, O vastab nihkele 14; H nihke 7;, nihe 0, ja ma nihe 8. Kui olete edukalt oma Caesar salakiri, see saab olema tore raamistik, millest sa saab rakendada Vigenere. Nagu näete, töötab Vigenere salakiri ühe iseloomu märksõna on sama asi nagu Caesar salakiri. Sama sammu kohaldata Vigenere nagu nad tegid Caesar. Märksõna on teine ​​käsurea argument, et sa seda kasutada koos argv1. Siis tuleb kontrollida, et võti sõna on tõesti kõik tähestiku. Siin on koht, kus on alfa võib tulla käepärane. Kui teil on olemas kehtiv märksõna, saad tugevus kasutaja ja seejärel oled valmis encipher. Vigenere salakiri valem on sarnane et Caesar valem, välja arvatud nüüd k muutub k indeks j, näidates j-nda tähe märksõna. Olgem sammult läbi selle protsessi. Ütle, et sa tahtsid saata sõnumi crash, sa meeldid mulle, aga sa ei ole tahan kõigile teada. Nii saate kasutada Vigenere salakiri koos märksõna panda, sest, noh, sa ka like pandas. Esimene kiri, I, lükkuvad p, andes x 15 tähte pärast I sest 15 p 16. täht. Järgmine kiri lihtteksti ruumi, nii et ei nihkunud. Ja indeks märksõna ei muutu. Siis järgmine täht lihttekstina on l, nihutatakse, mis ei nihku lihtteksti kirja üldse, sest on 0. täht. Protsess jätkub, arenev märksõna iseloomu iga kord seal kirja lihttekstina. Kui viimane täht märksõna on saavutatud, märksõna murtakse ja vahetuses järgmisele tavaline tekst kirja p. X lvne noh. Kui romantiline. Nii antakse märk, kuidas teisendada et vastavatesse salakiri vahetuses? Püüdke võrrelda ASCII väärtuste muutust. Võib-olla leiad suhe tähtede ja nende tähestikregistris kasutades ASCII matemaatikat. Kas te lisada või lahutada üks märk teisest saada sa soovitud tulemust? Pea meeles, et vahetuses suurtäht ja väiketähti on samad. Nii et ehk sa pead kindlaks kaks sarnased valemid esindama vahetustega, üks suur- märksõna iseloomu, ja üks jaoks väiketähti üks. Järgmisena mäletan, et märksõna ettemaksed ainult siis, kui märk plain tekst on kirjas ja et puhul tavaline tekst tuleb säilitada. Nii et kui me vaatame valemit Vigenere vahetustega, on kaks indeksit muutujate i ja j. Üks jälgib positsiooni tavaline tekst ja teine ​​asend aasta märksõna. Aga oma lihtteksti võib olla palju pikem kui märksõna, mille puhul teie märksõna indeks vajab ümbritsev tagasi algusega märksõna. Kuidas seda teha? Vaatame tagasi moodul operaator. Modulo määratletakse on ülejäänud jagades kaks numbrit. Aga milline on tegelik praktiline kasutamise moodul? Noh, et teil on suur hulk inimesed, ja sa pead jagada kolme rühma. Üks viis, kuidas jagada inimesed rühmadesse on, et neid maha arvama. Sa number gruppide grupi number 1, 2 ja 3. Esimene inimene, kes ütlevad, 1, järgmise 2, järgmise 3. Inimene pärast seda ütlevad 1 sest seal ei ole grupp 4, ja count hakkab üle sealt. Võite kasutada mooduli kuni teha sama asja. Seekord rühmad olema grupp 0, 1 ja 2. Esimene inimene, number 1 moodul 3, 1. Isik 2 moodul 3 on 2. Isik 3 moodul 3 on 0. Isiku 4 moodul 3 annab 1, ja nii rühmad võivad murtakse. Nii et kui te võtate indeks ja mooduli et indeksisse maksimaalne suurus, tulemus ei ole kunagi suurem kui või võrdne suurus, mis tähendab, et teil võib suurendada indeks palju kui soovid. Ja nii kaua, kui te mooduli indeksit mõned number, siis ei saada number suurem kui see. Nii et meil on 10 inimest, mitte 5, ja nad kõik saavad gruppidesse number 0, 1 või 2. Proovige seda rakendada pakkimine üle märksõna, välja arvatud asemel sortimine inimeste rühma numbrid, mida soovite indeks märksõna, et saaksite saada õige tegelane vahetustega ületamata stringi pikkusena. Koos, et teil on oma Vigenere salakiri. Minu nimi on Zamyla ja see on CS50.