>> 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]