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