>> Rob: Hi, unë jam Rob, dhe le të deshifroj programi Vigenere.
Pra, gjëja e parë që ne duhet të bëni është të bëjë siguruar që përdoruesi ka hyrë ajo që ne prisnim
ata që të në rreshtin e komandave.
Pra, nëse nuk është argc 2 që do të thotë ose përdoruesi nuk ka hyrë në string ne
duan të jenë duke e përdorur si encrypting tonë string, ose ata
hyri shumë gjëra.
Dhe ne nuk e dimë se çfarë të bëjë me ato gjëra të tjera.
>> Pra, ne tregoni atyre atë që ata duhet të kishte hyrë.
Dhe ne kthehemi.
Tani, duke supozuar se argc ishte 2, ne mund të të vazhdojë me pjesën tjetër të programit.
>> Ne alias emrin e ARGV [1]
në fjalen ndryshueshme.
Kështu që ne nuk duhet të përdorin emrin ARGV [1]
përgjatë pjesës tjetër të programit.
Dhe ndoshta ne do të harrojmë atë që që do të thotë dhe kështu me radhë.
Keyword është një emër shumë nicer.
Dhe ne do të menjëherë kap gjatësinë nga keyword tonë të drejtë këtu.
>> OK, kështu që tani që ne duam të kontrolloni se fjalen ynë është në të vërtetë e vlefshme.
Fjalen ne përdorim për të encrypt vargjet duhet vetëm të jetë i alfabetik
karaktere.
Në qoftë se përdoruesi ka hyrë jo-alfabetik karaktere, ne duhet të themi, keyword
duhet të përmbajë vetëm një pasim Z dhe pastaj të kthehen.
Pra, kjo për iterates lak mbi të gjitha karaktere të fjalen sonë, duke kontrolluar
se nëse dikush nuk është i alfabetik atëherë ne kemi nevojë për të shtypur atë paralajmërim.
>> Tani, sapo të marrë në këtë pikë, ne e dimë se vargu duhet të jetë e saktë.
Fjalë kyçe duhet të jetë e saktë.
Dhe tani ne kemi nevojë për të marrë mesazhin nga përdoruesit që ata të na duan të
encrypt me atë frazë kyçe.
Pra, për të marrë atë mesazh, ne kemi një bëni ndërsa lak që do të
vazhdimisht të marrë një varg nga përdoruesit deri sa të hyjnë në një varg të vlefshme.
>> Duke vazhduar, ne shohim këtu këtë variabël, int nun_letters_seen.
Ne do të shohim se pse ne kemi nevojë që në një të dytë.
Por kjo për lak do të iterate nga i barabartë me 0, gjatë gjithë rrugës deri të i
është e barabartë me n, që do të thotë ne jemi iterating mbi të gjitha të jetë e mundur
karaktere në mesazhin tonë.
Sepse ne duam të encrypt të gjitha të personazhet në mesazhin tonë.
Pra, vini re ne qoftë se (isalphamessage [I], sepse ne nuk duam të encrypt
karaktere që nuk janë alfabetik.
Nëse ka simbolet, hapësira, ose numra, ne nuk bëjmë
doni të encrypt ato.
>> Tani, duke supozuar se është e alfabetik, ne duam së pari të kuptoj se çfarë ne
në të vërtetë doni të encrypt mesazhi duke përdorur.
Pra, çfarë do të thotë me këtë?
>> Le të supozojmë se fraza kyçe përdoruesi hyri ishte abc.
Kjo është ajo që ne jemi duke përdorur për të encrypt.
Tani, me naivitet, ne mendojmë se do të thotë se ne duam të encrypt karakterin e parë
e mesazhit tonë me 0, pasi që një mjet rradhës karakterin me 0.
>> Ne duam të encrypt karakterin e dytë nga 1, karakter tretë me 2,
karakteri i katërt me 0, i pesti nga 1, gjashti me 2, etj.
Por mos harroni, se ne duam të kaloni hapësira dhe simbolet dhe numrat.
Kjo do të thotë se në qoftë se përdoruesi ka hyrë hello world si mesazhit
që ata duan për të encrypt, atëherë ne duam të encrypt h me 0
korrespondon A, e me 1, l me 2, l me 0, o me 1.
Ne duam të kaloni hapësirë, Encrypted w me 2, o me 0, 1, 2, 0.
Pra të vini re, në qoftë se ne nuk e kishte anashkalua hapësirë, atëherë ne do të kemi mbyllur
w me 0 dhe përfundoi me string pasaktë.
>> OK, kjo është ajo që ne kemi nevojë për variablin num_letters_seen për.
Në qoftë se ne ishim vetëm do të encrypt duke përdorur kjo metodë, e cila nuk e kaloni
simbolet, hapësira, dhe numrat, atëherë ne mund të përdorin vetëm të ndryshueshme i si ajo që
të indeksit në fraza tonë kyçe me.
Ne kemi nevojë për të përdorur num_letters_seen për të mbajtur gjurmët e vendit aktual në
Fraza kyç që ne duam të indeksit.
Kështu që këtu, në qoftë se fjalen ne kemi, në qoftë se num_letter_seen keyword_length mod, kështu
pse nuk kemi nevojë për të mod me gjatësi fjalen?
>> E pra, përshëndetje bota ishte një shembull i mirë.
Nëse fjalen ishte abc, atëherë ne kemi nevojë për të encrypt vazhdimisht nga një pastaj b
pastaj c, pastaj të përfundojë përsëri rreth, a, b, c, a, b, c.
Pra, ne duhet të mod me gjatësi fjalen në mënyrë që të përfundojë përsëri rreth.
>> Pra, nëse kjo është një letër uppercase, atëherë ne duam të encrypt duke
Pozita e atë letër në alfabetin, të cilat ne të merrni vetëm me
zbritur nga kapitali A. Dhe në mënyrë të ngjashme, për shkronja Fjala, ne
mund të merrni kyç që ne duam nga zbritur nga vogle një.
Pra, pa marrë parasysh nëse letra në fraza kryesore ishte një kapital ose
me shkronja të vogla, ne do të encrypt nga të njëjtën sasi.
>> Tani që ne kemi çelësin tonë, ne shohim këtu, se në qoftë se mesazhi i është një uppercase
karakter, atëherë ne duam për të llogaritur Pozita në alfabetin e që
karakter, shtoni kyç tonë për të, të përfundojë prapa rreth në mënyrë që në qoftë se ne kemi shkuar kaluar një
z kthehemi në a, b, c, dhe kështu me radhë.
Pastaj, më në fund, shtoni kthyer në kapitale A. Pra, ne ndryshim kthehet në [? Ascii?]
varg nga këto karaktere në vend të Pozicioni numerike në alfabetin
nga këto karaktere.
>> Dhe ne bëjmë të njëjtën gjë për gërma të vogla.
Përveç ne duam të zbres nga të vogla një dhe shtoni atë përsëri në në
fund, me të vogla një.
Vini re se num_letter_seen është vetëm incremented nëse mesazhi i ishte
alfabetik.
Kjo është se si ne të kaloni hapësira, simbolet, dhe numrat në frazën tonë kryesor, që nga viti
num_letter_seen është ajo që ne jemi duke përdorur të indeksit në fjalen tonë.
>> Së fundi, në fund, tani që mesazhi i ka qenë i mbyllur, ne
shtypura nga mesazh i.
Dhe kjo është ajo.
Emri im është Rob.
Dhe kjo është Vigenere.
>> [MUSIC Playing]