[Mūzikas atskaņošanas] ZAMYLA Chan: Pieņemsim īstenot Vigenere, nedaudz nodrošināt šifru nekā ķeizaram. Teksta tiek šifrēta, izmantojot virkne, nevis veselam skaitlim. Katrs alfabēta rakstzīme teksta tiek nobīdīts burts atslēgvārdu. Šajā piemērā, atslēgvārds ohai, O atbilst maiņu 14, H novirzīt gada 7; A nobīdi 0, un es pāreju gada 8. Ja esat veiksmīgi īstenoti jūsu Cēzara šifra, tas būs jauki sistēmu, no kuras jūs var īstenot Vigenere. Kā jūs varat redzēt, darbojas Vigenere šifra ar vienu rakstzīmi kā atslēgvārds ir viens un tas pats kā Cēzara šifru. Tādi paši pasākumi attiecas uz Vigenere kā tas bija ķeizara. Atslēgvārds ir otrais komandrindas arguments, lai jūs tai piekļūt ar argv1. Tad jums ir nepieciešams, lai pārliecinātos, ka galvenais Vārds ir patiešām visi alfabēta. Te ir vieta, kur ir alfa var būt parocīgs. Ja jums ir derīga atslēgvārdu, jūs saņemsiet spēks no lietotāja, un pēc tam jūs esat gatavs, lai šifrēt. Vigenere šifra formula ir līdzīga līdz Caesar formulu, izņemot tagad k kļūst k apakšraksts j, norādot j-tais burts atslēgvārdu. Let 's soli cauri šim procesam. Say vēlaties nosūtīt ziņu uz jūsu crash, es tāpat kā jūs, bet jums nav gribam, lai ikviens zināt. Tātad jūs izmantojat Vigenere šifru, ar atslēgvārds panda, jo, labi, jūs arī patīk pandas. Pirmais burts, es, tiks novirzīti ar p, dodot x, 15 burtiem pēc I, jo 15 p ir 16. alfabēta burts. Nākamais burts teksta ir telpa, tā, ka netiek pārvietoti. Un indekss atslēgvārda nemainīsies. Tad nākamais burts vienkāršā tekstā ir l, nobīdīts, kas nepāriet teksta burtu vispār, jo ir 0. alfabēta burts. Process turpinās, padziļinot atslēgvārds raksturs katru reizi, kad tur burts teksta. Pēc tam, kad pēdējais burts, kas ir atslēgvārdu sasniedza, atslēgvārds wraps ap un pārmaiņas uz nākamo līdzenumā teksts vēstule p. X lvne Noh. Cik romantiski. Tātad, ņemot vērā raksturu, kā jūs pārvērst ka uz atbilstoši šifrēt maiņu? Izmēģiniet salīdzinot ASCII vērtības uz maiņu. Varbūt jūs varat atrast attiecības starp burtiem un to alfabētisko rādītāju, izmantojot ASCII math. Vai jūs varat pievienot vai atņemt vienu rakstzīmi no otra, lai iegūtu Jums vēlamo rezultātu? Atcerieties, ka pārmaiņas attiecībā uz lielajiem burtiem un mazajiem burtiem, ir tas pats. Tātad, varbūt jums ir nepieciešams, lai noteiktu divus līdzīgas formulas, lai pārstāvētu maiņu, viens lielais atslēgvārds raksturs, un viens par mazo vienu. Tālāk, atcerieties, ka atslēgvārdu avansa tikai tad, ja varonis teksta ir burts, un gadījumā plain Teksts ir jāsaglabā. Tātad, ja mēs skatāmies uz formulu Vigenere maiņu, ir divi indekss mainīgie lielumi, i un j. Viens seko no amata vienkāršā teksta, un citi pozīcija ar atslēgvārdu. Bet jūsu teksta var būt daudz garāks nekā jūsu atslēgvārdu, tādā gadījumā jūsu atslēgvārdu rādītājs ir nepieciešams, lai wrap ap atpakaļ pie sākuma atslēgvārdu. Kā jūs darīt? Apskatīsim atpakaļ moduļa operatora. Modulo tiek definēta, ir atlikums dalot divus numurus. Bet to, kas ir faktiski praktisks izmantot modulo? Nu, teiksim, jums ir liela grupa cilvēku, un jums ir nepieciešams sadalīt trīs grupas. Viens veids, kā sadalīt cilvēkus grupās ir tos skaitīt off. Jūs numurs grupām grupu numurs 1, 2, 3 un. Pirmā persona teiks 1, next 2, nākamo 3. Persona pēc tam teiks 1, jo tur ir ne grupa 4, un skaits sāk vairāk no turienes. Jūs varat izmantot modulo lai darīt to pašu. Šoreiz grupas būs būt grupa, 0, 1, 2 un. Pirmā persona, numurs 1 3 moduli, ir 1. Persona 2 moduļa 3 ir 2. Persona 3 pēc moduļa 3 ir 0. Persona 4 pēc moduļa 3 dod 1, un tā grupas var wrap apkārt. Tātad, ja jūs lietojat indeksu un MODULO ka indekss ar maksimālo lielumu, rezultāts nekad nebūs lielāks par vai vienāda izmēra, kas nozīmē, ka jūs var palielināt indeksu, jo daudz, cik vēlaties. Un, kamēr jūs modulēt indeksu, ko kādu numuru, jūs nesaņemsiet numuru lielāks nekā tas. Tātad, mums ir 10 cilvēki, nevis 5, un viņi visi iegūt piešķirts grupās skaitlis 0, 1, 2 vai. Mēģināt piemērot šo iesaiņojuma vairāk atslēgvārds, izņemot vietā šķirošanas cilvēkus grupas numurs vēlaties indekss atslēgvārdu, lai jūs varētu iegūt tiesības raksturs novirzīt nepārsniedzot garums string. Ar to, ka jums ir jūsu Vigenere šifra. Mans vārds ir Zamyla, un tas ir CS50.