>> ROB: Tere, ma olen Rob ja olgem mõtestama Vigenere programm.
Nii et esimene asi, mida me peame tegema, on teha kindel kasutaja sisestatud mida me ootasime
neid, mida käsurea.
Nii et kui argc ei ole 2, mis tähendab kas kasutaja ei sisesta string me
tahad olla kasutades meie krüpteerimine string, või nad
sisestatud liiga palju asju.
Ja me ei tea, mida teha neid muid asju.
>> Nii et me neile öelda, mida nad pidanud kandma.
Ja me läheme tagasi.
Nüüd, kui eeldada, et argc oli 2, saame jätkata ülejäänud programmi.
>> Me alias nimi argv [1]
varieeruva märksõna.
Nii et me ei pea kasutada nimetust argv [1]
kogu ülejäänud programmi.
Ja võib-olla me unustada, mida see tähendab, ja nii edasi.
Märksõna on palju ilusam nimi.
Ja me kohe haarata pikkus meie märksõna siin.
>> OK, nii et nüüd me tahame, et kontrollida Meie märksõna on tegelikult kehtiv.
Märksõna me kasutame krüptida stringid peaks lihtsalt olema tähestikulises
tähemärki.
Kui kasutaja sisestatud mitte-tähestikulises tegelased, peaksime ütlema, märksõna
peavad sisaldama ainult läbi Z ja seejärel tagasi.
Nii et see loop kordab üle kõik tegelased meie märksõna, kontroll
et kui üks ei ole tähestikulises seejärel meil on vaja printida, et hoiatus.
>> Nüüd, kui me selle punkti, me teame, et string peab olema korrektne.
Märksõna peab olema korrektne.
Ja nüüd me peame sõnum kasutaja, et nad tahavad, et me
krüptida, et oluline lause.
Nii, et saada, et sõnum on meil tee samas silmus, mis läheb
pidevalt saada string kasutaja kuni nad sisesta kehtiv string.
>> Jätkuv näeme siin see muutuja, int nun_letters_seen.
Me näeme, miks me peame et teine.
Aga see eest loop läheb itereerima alates i võrdub 0 kogu tee kuni i
võrdne n, mis tähendab, et me iterating üle kõik võimalik
tegelased meie sõnum.
Kuna me soovime krüpteerida kõik tegelased meie sõnum.
Nii märkate me if (isalphamessage [I] sest me ei taha, et krüptida
märke, mis ei tähestiku.
Kui seal on sümbolid, ruumid, või numbrid, me ei pea
soovite krüptida need.
>> Nüüd, eeldades, et see on tähestikulises, kõigepealt on ju aru saada, mida me
tegelikult soovite krüptida sõnumi.
Niisiis, mida ma mõtlen, et?
>> Oletame, et oluline lause kasutaja sisestatud oli abc.
Seda me kasutame krüpteerimiseks.
Nüüd naiivselt arvame, et tähendab, et tahame krüpteerimiseks esimene märk
Meie sõnum 0, kuna vahenditega pöörleva sümbol 0.
>> Me tahame, et krüptida teine ​​märk 1, kolmas märk 2,
Neljas iseloomu 0, viienda 1, kuues 2, ja nii edasi.
Kuid pidage meeles, et me tahame, et liikuda ruumide ja sümboleid ja numbreid.
See tähendab, et kui kasutaja ei kandnud tere kui sõnum
et nad tahavad varjata, siis soovime krüpteerida h by 0
vastab, e 1, l 2, l 0, o 1.
Tahame vahele ruumi, krüpteeritud w on 2, o 0, 1, 2, 0.
Nii teate, kui me poleks vahele ruumi, siis me oleks krüpteeritud
w poolt 0 ja lõpetasin vale string.
>> OK, see on see, mida meil on vaja muutuja num_letters_seen eest.
Kui me lihtsalt läheb krüptida kasutades Selle meetodiga, mis ei jäta
sümboleid, tühikuid ja numbrid, siis me võiks lihtsalt kasutada muutuja i nagu mis
indeks meie võti fraas.
Me peame kasutama num_letters_seen hoida track tegeliku koha
oluline lause, et me tahame indeks.
Nii siin, kui märksõna on meil, kui num_letter_seen mod keyword_length, nii
miks me vajame mod märksõna pikkus?
>> Noh, tere maailm oli hea näide.
Kui märksõna oli abc, siis peame pidevalt krüptida poolt siis b
siis c, siis murrab tagasi umbes, a, b, c, a, b, c.
Seega peame mod märksõna pikkus et murrab tagasi umbes.
>> Nii et kui see on suure tähega, siis me tahame krüptida poolt
seisukohta, et tähestiku tähe, mis me saame lihtsalt
lahutades välja kapital A. Ja Samamoodi väiketähti, me
võib saada võti, et me tahame, mida lahutades välja väiketähti.
Nii sõltumata kirjas aasta märksõnaks oli kapital või
väiketäht, me läheme krüpteerimiseks sama summa võrra.
>> Nüüd, kui meil on võti, näeme siin et kui sõnum i on suur-
iseloomu, siis me tahame arvutada positsiooni tähestik et
iseloomu, lisada meie võti see, wrap tagasi umbes nii, et kui me läksime mööda
z läheme tagasi a, b, c, ja nii edasi.
Siis lõpuks lisada tagasi kapitali A. Nii me minema tagasi [? Ascii?]
vahemikus need märgid asemel numbriline positsioon tähestik
need märgid.
>> Ja me teeme sama asja väiketähed.
Välja tahame lahutada välja väiketähti ja lisada selle tagasi sisse
end, väiketähed.
Pange tähele, et num_letter_seen on ainult suurendatakse, kui sõnum olin
tähestiku.
See, kuidas me vahele tühikuid, sümboleid ja numbrid meie märksõnaks, sest
num_letter_seen mida me kasutame indeks meie märksõna.
>> Lõpuks, lõpuks, nüüd, et sõnum i on krüpteeritud, me
välja printida sõnum i.
Ja ongi kõik.
Minu nimi on Rob.
Ja see on Vigenere.
>> [Muusika mängib]