[Muzikavimo] ZAMYLA CHAN: Leiskite įgyvendinti Vigenere, šiek tiek daugiau užtikrinti šifravimo, nei ciesoriui. Paprastas tekstas užšifruota naudojant o sveikasis eilutę. Kiekviena abėcėlės raidė ir paprastas tekstas atitraukiama raidė raktinį žodį. Šiame pavyzdyje raktažodį ohai O atitinka 14 pamainą pagaminti; H perkelti iš 7; A pamaina 0, ir aš 8 pamainą. Jeigu jūs sėkmingai įgyvendino savo Cezario šifras, tai bus gražus sistema, iš kurios gali įgyvendinti Vigenere. Kaip matote, veikia Vigenere šifravimo su vienu budu Raktinis žodis yra tas pats kaip Cezario šifras. Tie patys veiksmai taikomi Vigenere kaip jie tai padarė Cezario. Raktažodis yra antra komandinės eilutės argumentas, kad jūs į jį su argv1. Tada jums reikia įsitikinti, kad pagrindinis Žodis iš tikrųjų visi abėcėlės. Štai kur yra alfa gali praversti. Jei turite galiojantį raktažodį, jūs gaunate stiprumas nuo vartotojo, ir tada būsite pasirengę šifruoti. Vigenere šifravimo formulė yra panašus Cezariui formulę, išskyrus dabar k tampa k indeksas j rodo, j-oji raidė raktinį žodį. Leiskite žingsnis per šį procesą. Pasakykite, kad norėjo siųsti žinutę į jūsų avarijos, man patinka, bet jūs neturite noriu visiems žinoti. Taigi jūs naudojate Vigenere šifravimo su raktažodis panda, nes, gerai, jūs taip pat patinka panda. Pirmoji raidė, aš, bus perkeltas P, suteikiant x, 15 raidžių po I nes 15 psl yra 16 abėcėlės raidė. Kita raidė lygumoje teksto erdvę, kad nebus perkelta. Ir raktažodį puslapis nesikeis. Tada kita raidė paprasto teksto l atitraukiama, kuris neperjungia teksto raidė ne visi, nes yra 0th abėcėlės raidė. Procesas tęsiasi, plečiant raktažodis simbolis kiekvieną kartą ten raidė paprastąjį tekstą. Kai paskutinis raidė raktažodis pasiekė, raktažodis kimba ir persikelia į kitą lygumoje tekstas laiškas p. X lvne Noh. Kaip romantiška. Taigi, atsižvelgiant į simbolį, kaip jums konvertuoti kad į atitinkamas šifras pamainą? Pabandykite palyginti ASCII vertės į pamainą. Gal galite surasti santykį tarp raidžių ir jų abėcėlinė rodyklė naudojant ASCII matematikos. Ar galite pridėti arba atimti vieną simbolį nuo kito gauti jums norimą rezultatą? Atminkite, kad už didžiąsias pokyčiai ir mažosios raidės yra tas pats. Taigi, galbūt jums reikia nustatyti du panašios formulės atstovauti pamainą, po vieną didžiąsias raktažodis pobūdžio, ir vienas už mažąsias vieną. Be to, atminkite, kad raktažodžių pažanga tik tada, kai personažas paprastas tekstas yra laiškas ir kad iš paprasto atveju tekstas turi būti išsaugota. Taigi, jei mes pažvelgti į formulę Vigenere perėjimas, yra du puslapis kintamieji, i ir j. Vienas stebi jo vieta paprastas teksto ir kita pozicija į raktinį žodį. Bet jūsų teksto gali būti daug ilgesnis nei raktažodį, tokiu atveju jūsų raktažodis puslapis turi apsukti atgal į žodį pradžioje. Kaip tai padaryti? Pažvelkime atgal modulį operatorius. Modulo apibrėžiama yra likusi dalijant du numerius. Bet kas tikrasis praktiškas naudoti pagal modulį? Na, tarkim, jūs turite didelę grupę žmonių, ir jums reikia padalinti į tris grupes. Vienas iš būdų skirstyti žmones į grupes yra turėti juos atskaityti. Jūs skaičiaus grupėse numeris 1, 2 ir 3. Pirmas žmogus sako 1, Kitą 2 savaitė 3. Asmuo, po to sako, 1, nes nėra 4 grupės, ir skaičius pradeda daugiau iš ten. Galite naudoti modulo į daryti tą patį. Šį kartą grupės bus BE Group 0, 1 ir 2. Pirmasis asmuo, skaičius 1 moduliu 3 1. Asmuo 2 moduliu 3 2. Asmuo 3 modulio 3 yra 0. Asmuo 4 moduliu 3 suteikia 1 ir tt grupės gali apsukti. Taigi, jei jūs imtis indeksą ir Modulo kad maksimalus jo dydis indeksas, rezultatas niekada nebus didesnis nei arba lygi dydžiui, o tai reiškia, kad jūs gali padidinti indekso kiek norite. Ir kaip ilgai, kaip jūs Modulo indeksą pagal kai skaičius, jūs negausite numerį didesnis nei. Taigi, mes turime 10 žmonių, o ne 5, o jie visi gauti skiriamas grupėms skaičius 0, 1 arba 2. Pabandykite taikyti šį vyniojimo daugiau raktažodis, išskyrus vietoj rūšiavimas žmonių į grupės numerį norite indeksas žodį, kad jūs galite gauti reikiamą simbolį perkelti neviršijant ilgis eilutę. Su tuo, jūs turite savo Vigenere šifras. Mano vardas Zamyla, ir tai yra CS50.