>> [Musiikki soi]
>> ZAMYLA Chan: Katsotaanpa toteuttaa Vigenere, hieman
turvata cipher kuin Caesar.
Tekstimuodossa salataan käyttäen merkkijono sijasta kokonaisluku.
Jokainen kirjainmerkki vuonna pelkkää tekstiä on siirtynyt
kirjeen hakusana.
>> Tässä esimerkissä avainsana ohai, O vastaa siirtymä 14, H
siirtää 7;, siirtyminen 0, ja minä muutos 8.
Jos olet onnistuneesti oman Caesar salaus, niin sitten on kiva
kehys, josta voi toteuttaa Vigenere.
Kuten näette, käynnissä Vigenere salakirjoitus yhdellä luonnetta
avainsana on sama asia Caesar-salakirjoitus.
>> Samat vaiheet Vigenere kuten he tekivät Caesar.
Avainsana on toinen komentoriviltä argumentti, joten voit käyttää sitä argv1.
Sitten sinun täytyy varmistaa, että keskeiset sana on todellakin kaikki aakkosjärjestyksessä.
Tässä on, jossa on alfa voi tulla kätevä.
Jos sinulla on voimassa oleva avainsanan, saat voimaa käyttäjä, ja sitten
olet valmis encipher.
>> Vigenere salakirjoitus kaava on samanlainen Caesar kaava, paitsi nyt k
tulee k alaindeksi j, joka osoittaa j: nnen kirjeen avainsanan.
Katsotaanpa askel tässä prosessissa.
Sano halusi lähettää viestin kaatua, minä pidän sinusta, mutta et
haluavat kaikkien tietävän.
Joten käytät Vigenere salakirjoitus kanssa Hakusanalla panda, koska hyvin, voit myös
kuten pandoja.
>> Ensimmäinen kirjain, minä, on siirtynyt p, jossa x, 15 kirjainta, kun olen,
koska 15 p on 16. kirjainmerkki.
Seuraavaa kirjainta tekstimuodossa on tila, niin että ei voida siirtää.
Ja indeksi avainsanan ei muutu.
>> Sitten seuraava kirjain tekstimuodossa on l, siirretään, joka ei liikahda
tekstimuodossa kirjeen ollenkaan, koska on 0. kirjaimen.
Prosessi jatkuu, etenee Hakusanalla merkki joka kerta siellä
kirjeen tekstimuodossa.
Kun viimeinen kirjain avainsana on saavutettu, avainsanan kiertyy ja
siirtyy seuraavaan tavallinen tekstin kirjeen s..
X lvne NOH.
Miten romanttista.
>> Joten annetaan merkki, miten muuntaa että vastaaviin
cipher muutos?
Kokeile vertaamalla ASCII arvot muutos.
Ehkä löydät suhde välillä kirjaimet ja niiden
aakkosellinen hakemisto ASCII matematiikkaa.
Voitteko lisätä tai vähentää yhden merkin toisesta päästä
voit toivottua tulosta?
>> Muista, että vuorossa isojen ja pienet kirjaimet ovat samat.
Joten ehkä sinun täytyy tunnistaa kaksi samanlaisia ​​kaavoja edustamaan
shift, yksi isoja Hakusanalla luonnetta, ja yksi
ja pieniä yhden.
>> Seuraavaksi muistan, että avainsana ennakot vain, jos merkki
pelkkää tekstiä on kirjeen ja että Jos tavallinen
teksti on säilytettävä.
Joten jos katsomme kaava Vigenere muutos, on olemassa kaksi indeksi
muuttujia, i ja j.
Yksi pitää kirjaa aseman tavallinen tekstiä, ja toinen asema
vuonna avainsanan.
Mutta pelkkää tekstiä voi olla paljon pidempi kuin avainsanan, jolloin sinun
avainsanahakemistoamme tarvitsee kietoa takaisin alkuun avainsanan.
>> Miten teet tämän?
Katsotaanpa takaisin modulo operaattori.
Modulo määritellään on jäljellä jakamalla kaksi numeroa.
Mutta mitä todellista käytännön käyttö modulo?
>> No, että sinulla on suuri joukko ihmisiä, ja sinun täytyy jakautua
kolme ryhmää.
Yksi tapa jakaa ihmisiä ryhmiin on ne laskea pois.
Olet numero ryhmät ryhmä numero 1, 2, ja 3.
Ensimmäinen henkilö sanoa 1, seuraavan 2, seuraava 3.
Henkilö sen jälkeen tulee sanoa 1, koska ei ole ryhmä, 4, ja
laskenta alkaa yli sieltä.
>> Voit käyttää modulo on tehdä sama asia.
Tällä kertaa ryhmät BE Group 0, 1, ja 2.
Ensimmäinen henkilö, numero 1 modulo 3, 1.
Henkilö 2 modulo 3 on 2.
Henkilö 3 modulo 3 on 0.
Henkilö 4 modulo 3 on 1, ja niin ryhmät voivat kietoa.
>> Joten jos otat indeksiä modulo että indeksi enimmäiskoko,
Tuloksena ei ole koskaan suurempi tai sama koko, mikä tarkoittaa, että
voi lisätä indeksin paljon kuin haluat.
Ja niin kauan kuin modulo indeksiin Joissakin numero, et saa numeron
suurempi.
Joten meillä on 10 ihmistä sijasta 5, ja he kaikki saavat luokitellaan ryhmiin
numero 0, 1 tai 2.
>> Yritä soveltaa tätä kääre yli Hakusanalla paitsi sijaan lajittelu
ihmisiä ryhmään haluamasi numerot indeksi avainsanan jotta voit
saat oikean merkin siirtää ylittämättä
merkkijonon pituus.
Kanssa, että sinulla on Vigenere nolla.
Nimeni on Zamyla, ja tämä on CS50.