Ebből: Szia, én vagyok Rob, és hagyja, hogy a megfejtés A Vigenère programot. Tehát az első dolog, amit meg kell tennie, hogy arról, hogy a felhasználó által megadott, amit vártunk őket, hogy a parancssorban. Tehát, ha argc nem 2 azt jelenti, hogy vagy a felhasználó nem adja meg a húr is akarjuk, hogy a mint a mi titkosítási szöveg, vagy lépett túl sok mindent. És nem tudom, mit tegyek azokkal más dolog. Szóval mondd el nekik, mit kellett volna be. És vissza. Nos, feltételezve, hogy argc volt 2, tudjuk folytassa a többi programot. Mi alias nevét argv [1] a változó kulcsszó. Így, hogy nem kell használja a nevét argv [1] az egész a többi a program. És talán akkor felejtsd el, amit ez azt jelenti, és így tovább. Kulcsszó sokkal szebb nevet. És mi azonnal megragad hosszát A kulcsszó itt. OK, így most szeretnénk ellenőrizni, hogy a kulcsszó valóban érvényes-e. A kulcsszó használjuk titkosítja húrok kell csak ábécé karaktereket. Ha a felhasználó által megadott non-ábécé karakter, azt kell mondani, kulcsszó kell, csak olyan A-tól Z, majd vissza. Tehát ez a for ciklus végigmegy az összes karaktereiből kulcsszó, ellenőrző hogy ha valaki nem abc, akkor meg kell nyomtatni, hogy figyelmeztetés. Most, ha egyszer eljutunk ezen a ponton, tudjuk, hogy a húr helyesnek kell lennie. A kulcsszó helyesnek kell lennie. És most ki kell, hogy az üzenetet a felhasználó számára, hogy azt akarják, hogy titkosítani az, hogy a legfontosabb mondat. Tehát, hogy ezt az üzenetet, hogy van egy do while ciklus, ami fog folyamatosan kap egy karakterláncot a felhasználó amíg azok meg egy érvényes karakterlánc. Folytatva, amit itt látunk, ezt a változót, int nun_letters_seen. Majd meglátjuk, hogy miért van szükség hogy a második. De ez a for ciklus lesz iterációkhoz az i értéke 0 egészen i értéke n, ami azt jelenti, mi iterációjával az összes lehetséges karakterek a mi üzenetünk. Mert azt akarjuk, hogy titkosítja az összes A karakterek a mi üzenetünk. Így észre, mi if (isalphamessage [I] mert nem akarjuk titkosítani karakter, amely nem ábécé. Ha vannak szimbólumok, terek, vagy számokat, mi nem titkosítani kívánja azokat. Nos, feltételezve, hogy az ábécé, először szeretné, hogy kitaláljuk, mit valóban szeretné titkosítani az üzenetet. Szóval mit jelent ez? Tegyük fel, hogy a legfontosabb mondat a felhasználó által megadott volt abc. Ez az, amit használ, hogy beavatkozik. Nos, naivan azt gondoljuk, hogy azt jelenti, hogy szeretnénk titkosítani az első karakter a mi üzenet 0, mivel egy eszköz forgatható a karakter 0-ra. Azt akarjuk, hogy titkosítja a második karakter 1, harmadik karakter 2, A negyedik karakter 0, az ötödik 1, 2 a hatodik, és így tovább. De ne felejtsd el, hogy szeretnénk ugrani terek és szimbólumok és számok. Ez azt jelenti, hogy ha a felhasználó lépett hello world az üzenet hogy akarnak titkosítani, majd szeretnénk titkosítani a h 0- egy megfelelő, az e 1, a l, 2, l-a 0, 1 o. Azt akarjuk, hogy hagyja ki a helyet, titkosított w 2, az o 0, 1, 2, 0. Tehát észre, ha nem kimarad a helyet, akkor mi lett volna a titkosított a w 0-val és végül a a hibás szöveg. OK, ez az, amire szükségünk van a változó num_letters_seen számára. Ha mi csak lesz titkosítani a ez a módszer, amely nem hagyja szimbólumok, terek, és a számok, akkor Lehet, hogy csak használja az i változó, mint amit az index a kulcsfontosságú mondatot. Meg kell használni num_letters_seen tartani követni a tényleges helyét a legfontosabb mondat, amit szeretnénk index. Tehát itt, ha a kulcsszó van, ha a num_letter_seen mod keyword_length, így miért kell a mod kulcsszó hossza? Nos, hello world egy jó példa. Ha a kulcsszó volt, abc, akkor meg kell folyamatosan titkosítani egy akkor b akkor C, majd csavarja vissza körül, a, b, c, a, b, c. Tehát meg kell mod kulcsszó hossza annak érdekében, hogy tekerje vissza kb. Tehát ha ez egy nagybetű, akkor szeretnénk titkosítani a helyzetét, hogy a levél az ábécé, amit kap mellett csak levonva a tőkét A. és Hasonlóképpen, a kisbetűk, mi kap a legfontosabb, hogy szeretnénk a kivonva ki kisbetűs a. Tehát függetlenül attól, hogy a levél A legfontosabb mondat volt a tőke-vagy kisbetű, megyünk titkosítja az ugyanazt az összeget. Most, hogy megvan a kulcs, amit itt látunk, hogy ha az üzenet azt egy nagybetűs karakter, akkor szeretnénk számítani a pozícióját az ábécé, amely karakter, add a kulcsot hozzá, csomagolja vissza körül, hogy ha mentünk már a z megyünk vissza a, b, c, és így tovább. Aztán végül, add vissza a tőke A. Tehát mi váltás vissza a [? Ascii?] tartomány ezeket a karaktereket, hanem a numerikus pozícióját az ábécé ezek a karakterek. És nem ugyanaz a dolog a kisbetűs karakter. Kivéve azt akarjuk kivonni ki kisbetűs a, és add vissza a végén, kisbetűk a. Vegyük észre, hogy num_letter_seen csak növekszik, ha az üzenet voltam ábécé. Így kihagyjuk terek, szimbólumok, és számok kulcsfontosságú mondatot, mert num_letter_seen az, amit használ az index a kulcsszó. Végül, a végén, most, hogy az üzenet Én nem titkosított, akkor nyomtassa ki az üzenet i. És ennyi. A nevem Rob. És ez Vigenère. [MUSIC Playing]