>> [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.