[Prehrávanie hudby] ZAMYLA CHAN: Poďme realizovať Vigenère, o niečo viac zabezpečiť šifru, ako Caesar. Obyčajný text zašifrovaný pomocou reťazec namiesto celé číslo. Každý abecedný znak obyčajný text posunutý písmeno kľúčového slova. V tomto príklade, kľúčové slovo Ohai, O zodpovedá posunu 14, H na posun 7, A, posun 0, a ja posunu 8. Ak ste úspešne realizovala svoj Caesarovho šifra, bude to pekné rámec, z ktorého môžu realizovať Vigenère. Ako môžete vidieť, beh Vigenère šifra s jedným charakteru ako Kľúčové slovo je to isté ako kód Caesar. Rovnaký postup platí pre Vigenère ako tomu bolo v Caesarovi. Kľúčové slovo je druhý príkazového riadka Argument, takže k nej pristupovať s argv1. Potom je potrebné overiť, že kľúč slovo je naozaj všetko, abecedný. Tu je miesto, kde je alfa môže prísť vhod. Ak máte platný kľúčové slovo, dostanete sila od užívateľa, a potom ste pripravení zašifrovať. Šifra Vigenère vzorec je podobný Caesar so vzorcami, s výnimkou teraz k sa k dolný index j, čo znamená, j-tý písmeno kľúčového slova. Poďme krok v rámci tohto procesu. Povedzme, že ste chceli poslať správu do havárie, mám ťa rád, ale nie Chcem, aby všetci vedeli. Takže použiť Vigenère kód s Kľúčové slovo panda, pretože, no, je tiež ako pandy. Prvý list, budem sa posunie podľa p, kedy X, 15 písmen čo som, pretože 15 p je 16. písmeno abecedy. Ďalšie písmeno vo formáte obyčajného textu je priestor, takže sa nemožno presúvať. A index kľúčového slova sa nezmení. Potom ďalšie písmeno vo formáte obyčajného textu je l, posunuté o, ktorá sa neposunie holý text listu vôbec, pretože je 0. písmeno abecedy. Tento proces pokračuje, postupujúci Kľúčové slovo znak zakaždým, keď je list v prostom texte. Po posledné písmeno v kľúčové slovo dosiahnuté, kľúčové slovo sa zalomia okolo a sa presunie do ďalšieho pláni Text List p. X lvne nôh. Ako romantické. Takže vzhľadom charakter, ako si previesť , Že do príslušnej Cipher posun? Skúste nákupný ASCII hodnoty k posunu. Možno u nás nájdeš vzťah medzi písmenami a ich abecedný register pomocou ASCII matematiky. Môžete pridať alebo ubrať jeden znak z iného dostať ste požadovaný výsledok? Pamätajte si, že posuny pre veľká a malé písmená sú rovnaké. Takže možno budete musieť identifikovať dva podobných vzorcov predstavujú posun, jeden pre veľká Kľúčové slovo znak, a jeden na malé písmená jeden. Ďalej nezabudnite, že kľúčové slovo zálohy iba v prípade, že znak holý text je list, a že prípad prostý Text musí byť zachovaná. Takže ak sa pozrieme na vzorec pre Vigenère posun, sú tam dva index premenných i a j Jeden udržiava postavenie v obyčajný textu, a ďalšie pozície na kľúčové slovo. Ale tvoj holý text môže byť oveľa dlhšia než vaše kľúčové slovo, v tom prípade bude vaša Kľúčové slovo index musí pretočiť späť na začiatok kľúčového slova. Ako to robíte? Pozrime sa na modulo operátor. Modulo definovaný, zvyšok delenie dvoch čísel. Ale to, čo je skutočné praktické použitie modulo? No, povedzme, že máte veľkú skupinu ľudí, a vy potrebné rozdeliť do troch skupín. Jeden spôsob, ako rozdeliť ľudí do skupín je nechať odpočítavať. Tie počet skupín skupinu číslo 1, 2, a 3.. Prvý človek povie 1, ďalšie 2, 3 ďalšie. Osoba, po ktorej sa bude hovoriť: 1, pretože nie je skupina 4, a Počet začína znovu od tam. Môžete použiť modulo sa to isté. Tentoraz skupiny byť skupina 0, 1, 2 a Prvá osoba, číslo 1 modulo 3, 1. Osoba 2 modulo 3 je 2. Osoba 3 modulo 3 je 0. Osoba 4 modulo 3 je 1, a tak skupiny môže obtekať okolo. Takže ak budete mať index a Modulo že index o maximálnej veľkosti, Výsledkom bude nikdy byť väčšia alebo , Ktoré zodpovedá veľkosti, čo znamená, že môže zvýšiť index ako rovnako ako by ste chceli. A ako dlho budete modulo index nejaké číslo, nebudete získať rad väčšia, než je. Takže máme 10 ľudí, miesto 5 a všetci by sa zaradené do skupín číslo 0, 1, alebo 2. Snažte sa aplikovať na balenie po kľúčové slovo, okrem namiesto triedenie ľudí do skupín čísiel chcete Index kľúčových slov, takže si môžete ten správny znak pre prejsť bez prekročenia dĺžka reťazca. S tým, máte Vigenère šifra. Volám sa Zamyla, a to je CS50.