ROB: Hei, olen Rob, ja lähdetään tulkita Vigenere ohjelma. Joten ensimmäinen asia, meidän täytyy tehdä, on tehdä Muista käyttäjä kirjoittaa mitä odotimme ne komentoriviltä. Joten jos argc ei ole 2, joka tarkoittaa joko käyttäjä ei anna merkkijono me haluavat käyttää meidän salaus merkkijono, tai ne tuli liian monia asioita. Ja emme tiedä mitä tehdä näitä muita asioita. Kerromme heille, mitä he olisi pitänyt kirjoittaa. Ja palaamme. Nyt oletetaan, että argc oli 2, voimme edelleen muun ohjelman. Me alias nimi argv [1] muuttujaan avainsanan. Jotta meillä ei tarvitse käyttää nimeä argv [1] koko loppuvuoden ohjelman. Ja ehkä me unohtaa, mitä se tarkoittaa, että ja niin edelleen. Avainsana on paljon mukavampi nimi. Ja me heti napata pituus meidän avainsanan täällä. OK, joten nyt haluamme tarkistaa, että avainsanojen on todella pätevä. Hakusanalla käytämme salata jouset pitäisi vain olla aakkosjärjestyksessä merkkiä. Jos käyttäjä kirjoittaa ei-aakkosjärjestyksessä merkkiä, meidän pitäisi sanoa, avainsana saa olla vain läpi Z ja palata sitten. Joten tämä silmukka iteroi kaikki merkkiä avainsanojen, tarkkailu että jos ei ole aakkosjärjestyksessä sitten meidän täytyy tulostaa tuon varoituksen. Nyt, kun saamme tähän pisteeseen, tiedämme että merkkijono on oltava oikea. Hakusanalla on oltava oikea. Ja nyt meidän täytyy saada viestin käyttäjälle, että he haluavat meidän Salaa että hokeman. Niin tämä viesti perille, meillä on tehdä, kun silmukka, joka menee jatkuvasti saada merkkijonon käyttäjä kunnes ne tulevat kelvollinen merkkijono. Jatkuvat, tässä näemme tämän muuttujan, int nun_letters_seen. Saa nähdä, miksi me tarvitsemme että toisen. Mutta tämä silmukka on menossa kerrata alkaen I on 0 kaikki tavalla jopa i vastaa n, mikä tarkoittaa, että me iteroimalla kaikkiin mahdollisiin merkkiä viestimme. Koska haluamme salata kaikki merkkiä viestimme. Niin huomaa tehdä, jos (isalphamessage [I], koska emme halua salata merkkejä, jotka eivät ole aakkosjärjestyksessä. Jos on symboleja, välilyönnit tai numeroita, emme haluavat salata niitä. Nyt, olettaen, että se on aakkosjärjestyksessä, haluamme ensin selvittää, mitä me todella haluavat salata viestin. Joten mitä tarkoitan tällä? Oletetaan, että hokeman käyttäjä kirjoittaa oli abc. Sitähän me käytät salata. Nyt naiivisti, mielestämme tarkoittaa, että haluamme salata ensimmäinen merkki meidän viestin 0, koska välineet pyörivä merkin 0. Haluamme salata toinen merkki 1, kolmannen merkin 2, neljännen merkin 0, viides 1, kuudes 2, ja niin edelleen. Mutta muista, että haluamme ohittaa tilat ja symboleita ja numeroita. Tämä tarkoittaa, että jos käyttäjä olisi syöttänyt Moikka maailma viesti että he haluavat salata, niin haluamme salata h 0 vastaa, e 1, L 2, L 0, o 1. Haluamme ohittaa tilaa, salattu w 2, o 0, 1, 2, 0. Joten huomaa, jos emme olisi ohitettu tilaa, niin olisimme salattu w 0 ja päädyin virheellinen merkkijono. OK, tämä on mitä me tarvitsemme muuttuja num_letters_seen varten. Jos olimme juuri menossa salata käyttäen Tämän menetelmän, joka ei jätä symboleja, välilyöntejä ja numeroita, niin me voisi vain käyttää muuttujaa i kuin mitä indeksoida meidän hokeman kanssa. Meidän täytyy käyttää num_letters_seen pitää kirjaa todellinen paikka hokeman, että haluamme indeksiin. Joten tässä, jos avainsana meillä on, jos num_letter_seen mod keyword_length, niin miksi tarvitsemme mod avainsanan pituus? No, hello world oli hyvä esimerkki. Jos avainsana on abc, meidän jatkuvasti salata joita sitten b niin c, sitten kääri takaisin noin, a, b, c, a, b, c. Joten meidän täytyy mod avainsanan pituus jotta kääri takaisin noin. Joten jos tämä on iso kirjain, Sitten haluamme salata mukaan asemaa, että kirjeen aakkoset, josta saamme vain vähentämällä pääomaa A. Ja Samoin pieniä kirjaimia, me voi saada avain että haluamme by vähentämällä ulos pieniä. Niin riippumatta siitä, onko kirje hokeman oli pääomaa tai pieni kirjain, aiomme salata saman verran. Nyt kun meillä on avain, näemme täällä, että jos viesti i on isoja merkki, niin haluamme laskea kanta aakkosissa, että merkki, lisää meidän avain siihen, kääri takaisin ympäri niin, että jos me ohitti z palaamme, b, c, ja niin edelleen. Sitten lopuksi lisätä takaisin pääoman A. So siirrämme takaisin [? Ascii?] valikoima näitä merkkejä sijaan numeerisen sijainnin aakkosissa näistä merkeistä. Ja teemme saman asian pieniä kirjaimia. Paitsi haluamme vähentää ulos pieniä ja lisää sen päälle Lopulta pieniksi. Huomaa, että num_letter_seen on vain kasvavat, jos viestin olin aakkosellinen. Näin me ohittaa tilat, symbolit ja numerot meidän hokeman, koska num_letter_seen on mitä käytämme indeksoida osaksi avainsanojen. Lopuksi, lopulta, nyt kun viesti i on salattu, me tulostaa viestin i. Ja se on siinä. Nimeni on Rob. Ja tämä on Vigenere. [Musiikki soi]