>> ROB: Hi, jien Rob, u ejja jiddeċifraw il-programm Vigenere.
Allura l-ewwel ħaġa li għandna bżonn tagħmel hu li tagħmel żgur li l-utent daħal dak li aħna mistennija
li fil-linja Kmand.
Hekk jekk argc mhuwiex 2 li tfisser jew l-utent ma daħħalx il-string aħna
tixtieq li tkun qed tuża bħala encrypting tagħna string, jew
daħal affarijiet wisq.
U aħna ma jafu x'għandhom jagħmlu ma 'dawk l-affarijiet oħra.
>> Allura aħna jgħidulhom dak li għandhom ikunu daħlu.
U nerġgħu lura.
Issa, jekk wieħed jassumi li argc kien 2, nistgħu tkompli mal-bqija tal-programm.
>> Aħna alias l-isem ta ARGV [1]
fil-keyword varjabbli.
Allura li aħna ma jkollhom tuża l-isem ARGV [1]
matul il-bqija tal-programm.
U forsi aħna ser tinsa dak dan ifisser u l-bqija.
Keyword huwa isem ferm nicer.
U aħna ser immedjatament grab-tul ta 'keyword tagħna dritt hawn.
>> OK, hekk issa irridu li jivverifikaw li keyword tagħna huwa attwalment validu.
Il-keyword nużaw biex kriptaġġ kordi Għandu jkun biss alfabetiku
karattri.
Jekk l-utent daħal non-alfabetika karattri, għandna ngħidu, keyword
għandu jkun fiha biss A permezz Z u mbagħad jirritornaw.
Allura dan għal ttenni loop fuq kollha karattri ta 'keyword tagħna, il-verifika
li jekk wieħed ma jkunx alfabetiku allura għandna bżonn li jistampaw li twissija.
>> Issa, ladarba irridu jiksbu dan il-punt, nafu li l-sekwenza għandha tkun korretta.
Il-keyword għandha tkun korretta.
U issa għandna bżonn li tikseb il-messaġġ mill- l-utent li jkunu jridu magħna biex
kriptaġġ ma 'dik il-frażi importanti.
Allura biex tikseb dak il-messaġġ, għandna tagħmel filwaqt loop li għaddej biex
kontinwament jiksbu string mill-utent sakemm jidħol string valida.
>> Kontinwa, naraw hawn dan il-varjabbli, int nun_letters_seen.
Aħna ser tara għaliex għandna bżonn li fit-tieni.
Iżda dan għal loop se jtenni minn i egwali għal 0 it-triq kollha sa i
ugwali n, li jfisser aħna qed mtennija fuq kollha possibbli
karattri fit-messaġġ tagħna.
Għaliex irridu li kriptaġġ kollha il-karattri fit-messaġġ tagħna.
Allura avviż nagħmlu jekk (isalphamessage [I], għaliex aħna ma rridux li kriptaġġ
karattri li mhumiex alfabetiku.
Jekk ikun hemm simboli, spazji, jew numri, aħna ma
tixtieq li kriptaġġ dawk.
>> Issa, jekk wieħed jassumi li huwa alfabetiku, aħna l-ewwel trid insemmu dak li aħna
fil-fatt tixtieq li kriptaġġ il-messaġġ użu.
Mela xi do I jfisser minn dak?
>> Ejja nassumu li l-frażi importanti l-utent daħal kien abc.
Dak hu li aħna qed jużaw għall-kriptaġġ.
Issa, naively, naħsbu li jfisser li irridu kriptaġġ l-ewwel karattru
tal-messaġġ tagħna minn 0, peress mezz ddawwar il-karattru ta '0.
>> Aħna rridu li kriptaġġ-tieni karattru sa l-1, karattri terz minn 2,
ir-raba 'karattru 0, il-ħames mill-1, is-sitt sat-2, u l-bqija.
Imma ftakar, li rridu skip spazji u simboli u numri.
Dan ifisser li jekk l-utent kienet daħlet bonjour dinja bħala l-messaġġ
li jkunu jridu kriptaġġ, imbagħad irridu kriptaġġ l-h minn 0
jikkorrispondi għall-a, l-e sal-1, il- l bi 2, ll 0, il-o sa l-1.
Aħna rridu li skip-ispazju, encrypted lw bi 2, il-o 0, 1, 2, 0.
Għalhekk avviż, jekk aħna ma tinqabeż il- ispazju, allura rridu naraw encrypted
lw minn 0 u spiċċaw bi l-sekwenza korretta.
>> OK, dan huwa dak li għandna bżonn l-varjabbli num_letters_seen għall.
Jekk konna biss jmorru għall-kriptaġġ użu dan il-metodu, li ma skip
simboli, spazji, u numri, allura aħna tista 'biss tuża l-varjabbli i bħala dak li
indiċi fis frażi importanti tagħna ma.
Jeħtiġilna nużaw num_letters_seen biex iżommu rekord tal-post attwali fil-
frażi importanti li rridu indiċi.
Allura hawnhekk, jekk il-keyword għandna, jekk num_letter_seen keyword_length mod, hekk
għaliex għandna bżonn li MOD skond it-tul keyword?
>> Well, bonjour dinja kien eżempju tajjeb.
Jekk il-keyword kien abc, allura għandna bżonn li kontinwament kriptaġġ minn dakinhar b
imbagħad c, allura wrap lura madwar, a, b, c, a, b, c.
Għalhekk għandna bżonn li MOD skond it-tul keyword sabiex wrap lura madwar.
>> Hekk jekk dan huwa ittra uppercase, imbagħad irridu kriptaġġ mill-
pożizzjoni ta 'din l-ittra fl-alfabett, li nikbru bi ftit
jitnaqqas l-kapital A. U istess mod, għall-ittri zghar, aħna
jistgħu jiksbu l-ewlenin li rridu minn jitnaqqas out zghar a.
Allura irrispettivament minn jekk l-ittra fil-frażi importanti kien il-kapital jew
ittra zghar, aħna qed tmur biex kriptaġġ bl-istess ammont.
>> Issa li għandna ewlenin tagħna, naraw hawn, li jekk il-messaġġ i huwa uppercase
karattru, allura irridu li tikkalkula l- pożizzjoni fl-alfabett ta 'dak
karattru, żid ewlenin tagħna miegħu, wrap lura madwar hekk li jekk aħna marru passat
z immorru lura għal a, b, c, u l-bqija.
Imbagħad, fl-aħħarnett, żid lura fuq il-kapital A. So aħna bidla lura fil-[? Ascii?]
firxa ta 'dawn il-karattri minflok il- pożizzjoni numeriku fl-alfabett
ta 'dawn il-karattri.
>> U nagħmlu l-istess ħaġa għall- f'karattri aktar baxxi.
Ħlief irridu li naqqas out zghar a u żid lura fuq fil-
aħħar, zghar a.
Avviż li num_letter_seen biss inkrementat jekk il-messaġġ kien i
alfabetiku.
Dan huwa kif aħna skip spazji, simboli, u numri fil-frażi importanti tagħna, minn
num_letter_seen huwa dak li aħna qed tuża indiċi fis keyword tagħna.
>> Fl-aħħarnett, fl-aħħar, issa dak il-messaġġ i kien encrypted, aħna
jistampa messaġġ i.
U thats it.
Jisimni Rob.
U dan huwa Vigenere.
>> [Daqq tal-mużika]