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