ROB: Sveiki, es esmu Rob, un pieņemsim atšifrēt Vigenere programmu. Tātad pirmā lieta, kas mums jādara, ir padarīt Noteikti lietotājs ievada, ko mēs gaidīts viņiem pie komandrindas. Tātad, ja argc nav 2 tas nozīmē, ka vai nu lietotājs nav ievadiet stīgu mēs vēlas, lai, izmantojot kā mūsu šifrēšanas virkne, vai arī tie ievadīts pārāk daudz lietas. Un mēs nezinām, ko darīt ar šīm citām lietām. Tāpēc mēs viņiem pateikt, ko viņi būtu iekļauta. Un mēs atgriežamies. Tagad, pieņemot, ka argc bija 2, mēs varam turpināt ar pārējo programmas. Mēs Alias ​​nosaukumu ARGV [1] uz mainīgo atslēgvārdu. Tāpēc, ka mums nav izmantot nosaukumu ARGV [1] visu pārējo programmu. Un varbūt mēs aizmirst to, kas , kas nozīmē, un tā tālāk. Atslēgvārds ir daudz jaukāk nosaukumu. Un mēs uzreiz paķert garumu Mūsu atslēgvārdu šeit. Labi, tāpēc tagad mēs vēlamies, lai pārliecinātos, ka Mūsu atslēgvārds ir faktiski derīga. Atslēgvārds mēs izmantojam, lai šifrētu stīgas ir vienkārši alfabēta rakstzīmes. Ja lietotājs ievada bez alfabēta rakstzīmes, mums vajadzētu teikt, atslēgvārds jāiekļauj tikai A through Z un pēc tam atgriezties. Tāpēc šis cilpa vairākkārt uzsvērts visā rakstzīmes mūsu atslēgvārdu, pārbaudot ka, ja viens nav alfabētiskā tad mums ir nepieciešams izdrukāt šo brīdinājumu. Tagad, kad mēs uz šo jautājumu, mēs zinām, ka virkne ir pareizs. Atslēgvārds ir pareizs. Un tagad mums ir nepieciešams, lai saņemtu ziņu no lietotājs, ka viņi vēlas, lai mēs šifrēt ar šo atslēgu frāze. Tātad, lai iegūtu šo ziņojumu, mēs esam darīt, kamēr cilpa, kas notiek, lai nepārtraukti iegūt virkni no lietotāja līdz brīdim, kad tās nonāk derīgu virkni. Turpinot, mēs redzam šeit šo mainīgo, int nun_letters_seen. Mēs redzēsim, kāpēc mums vajag ka otrajā. Bet tas cilpa gatavojas atkārtot no i vienāds 0 visu ceļu līdz i vienāds ar n, kas nozīmē, ka mēs esam atkārtojot visas iespējas rakstzīmes mūsu vēstījumu. Jo mēs gribam, lai šifrētu visiem varoņi mūsu vēstījumu. Tāpēc paziņojums mums darīt, ja (isalphamessage [I] jo mēs nevēlamies, lai šifrētu rakstzīmes, kas nav alfabēta. Ja ir simboli, atstarpes, vai numurus, mums nav vēlaties šifrēt tos. Tagad, pieņemot, ka tas ir alfabēta, mēs vispirms vēlamies, lai noskaidrotu, ko mēs tiešām vēlaties šifrēt ziņu, izmantojot. Tātad, ko es ar to domāju? Pieņemsim, ka galvenais frāze lietotājs ieraksta bija abc. Tas ir tas, ko mēs izmantot, lai šifrētu. Tagad, naivi, mēs domājam, tas nozīmē, ka Mēs vēlamies, lai šifrētu pirmo rakstzīmi Mūsu ziņu pa 0, jo līdzekļi rotējot raksturs, 0. Mēs vēlamies, lai šifrētu otro rakstzīmi par 1, trešā zīme par 2, ceturtais raksturs ar 0, piektais līdz 1, sestajā ar 2, un tā tālāk. Bet atceries, ka mēs vēlamies, lai izlaistu atstarpes un simbolus un ciparus. Tas nozīmē, ka ja lietotājs ir ievadīta hello world kā ziņas ka viņi vēlas, lai šifrētu, tad Mēs vēlamies, lai šifrētu h līdz 0 , kas atbilst A, e par 1, l līdz 2, l, 0, o ar 1. Mēs vēlamies, lai izlaistu telpu, šifrētu w ar 2, o ar 0, 1, 2, 0. Tātad paziņojums, ja mēs nebūtu izlaidis telpu, tad mēs būtu šifrēta w, 0 un beidzās ar nepareiza string. Labi, tas ir tas, kas mums ir vajadzīga mainīgo num_letters_seen par. Ja mēs tikai gatavojas šifrēt, izmantojot šī metode, kas nav izlaist simboli, atstarpes un cipari, tad mēs varētu tikai izmantot mainīgo i par to, kas indeksēt mūsu galveno frāze ar. Mums ir nepieciešams, lai izmantotu num_letters_seen lai saglabātu dziesmu par faktisko vietu atslēgu frāze, ka mēs gribam, lai indeksu. Tātad šeit, ja atslēgvārds mums ir, ja num_letter_seen mod keyword_length, tāpēc kāpēc mums vajag mod pēc atslēgvārda garumu? Nu, sveiki pasaule bija labs piemērs. Ja atslēgvārds ir abc, tad mums nepārtraukti šifrētu ko tad b tad c, tad wrap atpakaļ ap, a, b, c, a, b, c. Tāpēc mums ir nepieciešams, lai mod pēc atslēgvārda garumu lai wrap atpakaļ apkārt. Tātad, ja tas ir lielais burts, tad mēs gribam, lai šifrētu ar Minētās vēstules alfabētu amats, kuru mēs, tikai atņemot no kapitāla A. un Līdzīgi, mazajiem burtiem, mēs var iegūt atslēgu, ko mēs gribam, ko atņemot no mazajam a. Tātad, neatkarīgi no tā, vai vēstule ar galveno frāze bija kapitāls vai mazo burtu, mēs ejam šifrētu ar tādu pašu daudzumu. Tagad, ka mums ir mūsu atslēga, mēs redzam šeit, ka, ja ziņojumu i ir lielais raksturs, tad mēs vēlamies, lai aprēķinātu pozīciju alfabēts ka raksturu, pievienot savu atslēgu uz to, ietiniet atpakaļ apmēram tā, ka, ja mēs gājām garām z mēs doties atpakaļ uz a, b, c, un tā tālāk. Tad, visbeidzot, pievienojiet atpakaļ uz kapitāla A. So mēs pāriet atpakaļ [? Ascii?] diapazonā no šiem burtiem, nevis ciparu pozīcijas alfabēta no šiem burtiem. Un mēs to pašu par mazajiem burtiem. Izņemot gadījumus, mēs vēlamies, lai atņemtu ārā mazos un pievienojiet to atpakaļ uz end, mazajiem burtiem. Ievērojiet, ka num_letter_seen ir tikai palielina, ja ziņa man bija alfabēta. Tas ir, kā mēs izlaist atstarpes, simbolus, un numurus mūsu atslēgu frāze, jo num_letter_seen ir tas, ko mēs izmantojam indeksēt mūsu atslēgvārdu. Visbeidzot, galu galā, tagad šī ziņa i ir šifrēta, mēs izdrukāt ziņu i. Un tas arī viss. Mans vārds ir Rob. Un tas ir Vigenere. [Mūzikas atskaņošanai]