>> ROB: Hi, mwen se Rob, e kite yo Decoder pwogram lan Vigenere.
Se konsa, premye bagay nou bezwen fè se fè asire w ke itilizatè a te antre nan sa nou espere
yo nan liy lan lòd.
Se konsa, si arg se pa 2 sa vle di swa itilizatè a pa t 'antre nan nou la fisèl
vle yo lè l sèvi avèk kòm chifreman nou fisèl, oswa yo
te antre nan twò anpil bagay.
Apre sa, nou pa konnen sa yo dwe fè avèk moun ki lòt bagay.
>> Se konsa, nou di yo sa yo ta dwe gen antre nan.
Apre sa, nou retounen.
Koulye a,, an konsideran ke arg te 2, nou ka kontinye ak rès la nan pwogram nan.
>> Nou alyas non an nan argv [1]
nan mo kle a varyab.
Se konsa, ke nou pa oblije sèvi ak argv la Non [1]
nan tout rès la nan pwogram nan.
E petèt nou pral bliye sa sa vle di ak sou sa.
Keyword se yon non anpil joli.
Epitou, n ap imedyatman gen tan pwan longè a nan mo kle nou isit la menm.
>> OK, se konsa koulye a nou vle tcheke ki mo kle nou an, se aktyèlman ki valid.
Mo kle a nou itilize nan ankripte strings yo ta dwe jis pou alfabetik
karaktè.
Si itilizatè a te antre nan ki pa alfabetik karaktè, nou ta dwe di, mo kle
dwe sèlman gen ladan A jiska Z ak Lè sa a, retounen.
Se konsa, sa a pou iterates bouk sou tout karaktè nan mo kle nou an, tcheke
ke si se yon sèl pa alfabetik Lè sa a, nou bezwen ekri ak lèt ​​detache ki avètisman.
>> Koulye a, yon fwa nou jwenn nan pwen sa a, nou konnen ki fisèl la dwe kòrèk.
Mo kle a dwe kòrèk.
Epi, koulye a nou bezwen jwenn mesaj ki soti nan itilizatè a yo ke yo ta vle nou
ankripte ak sa fraz kle.
Se konsa, yo ka resevwa ke mesaj, nou gen yon fè pandan y ap bouk ki nan ale nan
kontinyèlman jwenn yon fisèl soti nan itilizatè a jiskaske yo antre nan yon fisèl ki valid.
>> Kontinye, nou wè isit la varyab sa a, Int nun_letters_seen.
Nou pwal wè poukisa nou bezwen ke nan yon dezyèm fwa.
Men, sa a pou bouk ki pral repňte soti nan mwen egal 0 tout wout la jiska mwen
egal n, ki vle di nou ap iteration sou tout sa ki posib
karaktè nan mesaj nou an.
Paske nou vle ankripte tout karaktè yo nan mesaj nou an.
Se konsa, remake nou fè si (isalphamessage [mwen], paske nou pa vle ankripte
karaktè ki pa alfabetik.
Si gen senbòl, espas, oubyen nimewo yo, nou pa fè sa
vle ankripte sa yo.
>> Koulye a, an konsideran ke li se alfabetik, nou premye vle konnen ki sa nou
aktyèlman vle ankripte mesaj la lè l sèvi avèk.
Se konsa, sa m 'vle di pa sa?
>> Se pou yo asime ke fraz la kle itilizatè a te antre nan te abc.
Sa a ki sa nou ap lè l sèvi avèk ankripte.
Koulye a, naivman, nou panse ke vle di ke nou vle ankripte karaktè nan premye
nan mesaj nou an pa 0, depi yon mwayen wotasyon karaktè a pa 0.
>> Nou vle ankripte karaktè nan dezyèm pa 1, pèsonaj twazyèm pa 2,
karaktè nan katriyèm pa 0, senkyèm lan pa 1, sizyèm lan pa 2, ak sou sa.
Men, sonje, se sa nou vle sote espas ak senbòl ak nimewo.
Sa vle di ke si te gen itilizatè a te antre nan alo mond kòm mesaj la
ke yo vle ankripte, lè sa a nou vle ankripte h a pa 0
ki koresponn a yon an, e la pa 1, nan l pa 2, l la pa 0, o a pa 1.
Nou vle sote espas ki la, chiffres w la pa 2, o la pa 0, 1, 2, 0.
Se konsa, avi, si nou pa t 'sote nan espas, Lè sa a, nou ta gen chiffres
w la pa 0 ak te fini ak fisèl la kòrèk.
>> OK, sa a se sa nou bezwen varyab la num_letters_seen pou.
Si nou te jis ale nan ankripte lè l sèvi avèk metòd sa a, ki pa sote
senbòl, espas, ak nimewo, lè sa a nou te kapab jis itilize varyab la mwen kòm sa
endèks nan kle fraz nou an avèk yo.
Nou bezwen sèvi ak num_letters_seen kenbe tras nan kote aktyèl la nan la
fraz kle ki nou vle Konpayi paran yo.
Se konsa, isit la, si mo kle a nou genyen, si num_letter_seen mod keyword_length, se konsa
poukisa nou bezwen mod pa longè mo kle?
>> Oke, alo mond se te yon bon egzanp.
Si mo kle a te abc, lè sa a nou bezwen kontinyèlman ankripte pa yon Lè sa a, b
Lè sa a, c, Lè sa a, vlope tounen alantou li, yon, B, C, A, B, c.
Se konsa, nou bezwen mod pa longè mo kle yo nan lòd yo vlope tounen alantou.
>> Se konsa, si sa a se yon lèt majuskul, Lè sa a, nou vle ankripte pa la
pozisyon nan lèt sa a nan alfabè a, ki nou jwenn pa jis
soustraksyon soti kapital A. Apre sa, Menm jan an tou, pou lèt miniskil, nou
ka jwenn kle a ke nou vle pa soustraksyon soti miniskil yon.
Se konsa, kèlkeswa si lèt la nan fraz la kle se te yon kapital oswa
miniskil lèt, nou ap ale nan ankripte pa menm kantite lajan an.
>> Koulye a, ke nou gen kle nou yo, nou wè isit la, ke si mesaj mwen se yon majuskul
karaktè, Lè sa a, nou vle kalkile nan pozisyon nan alfabè a nan ki
karaktè, ajoute kle nou nan li, vlope tounen alantou se konsa ke si nou te ale sot pase yo yon
z n 'al jwenn tounen nan yon, B, C, ak sou sa.
Lè sa a, finalman, ajoute tounen sou kapital A. Se konsa, nou chanjman tounen nan [a? ASCII?]
ran de karaktè sa yo olye pou yo nan nimerik pozisyon nan alfabè a
nan karaktè sa yo.
>> Lèfini, nou fè menm bagay la pou pi ba karaktè ka.
Eksepte nou vle fè soustraksyon soti miniskil yon epi ajoute li sou do yo nan la
fen, miniskil yon.
Remake num_letter_seen se sèlman enkremante si mesaj mwen te
alfabetik.
Sa a se ki jan nou sote espas, senbòl, ak nimewo nan kle fraz nou an, depi
num_letter_seen se sa nou ap itilize endèks nan mo kle nou yo.
>> Finalman, nan fen a, kounye a ke mesaj mwen te chiffres, nou
enprime soti mesaj mwen.
Epi sa a, li.
Non mwen se Rob.
Lè sa a se Vigenere.
>> [MIZIK jwe]