>> ROB: Hi, Im 'Rob, a gadewch i ni dehongli y rhaglen Vigenere.
Beth felly yn gyntaf mae angen i ni ei wneud yw gwneud yn siŵr bod y defnyddiwr gofnodi yr hyn yr ydym yn disgwyl
iddynt yn y llinell orchymyn.
Felly, os nad argc yw 2 sy'n golygu naill ai nad yw'r defnyddiwr yn mynd i mewn i'r ydym yn llinyn
am fod yn defnyddio fel ein amgryptio llinyn, neu eu bod
aeth gormod o bethau.
Ac nid ydym yn gwybod beth i'w wneud gyda phethau eraill hynny.
>> Felly, byddwn yn dweud wrthynt beth y maent ddylai fod wedi mynd.
Ac rydym yn dychwelyd.
Yn awr, gan dybio bod argc yn 2, gallwn barhau â gweddill y rhaglen.
>> Rydym yn alias enw argv [1]
i mewn i'r gair allweddol amrywiol.
Felly, nad oes gennym i ddefnyddio'r enw argv [1]
drwy gydol gweddill y rhaglen.
Ac efallai byddwn yn anghofio beth sy'n golygu ac yn y blaen.
Allweddair yn enw llawer brafiach.
A byddwn yn ar unwaith chrafangia 'r hyd ein gair allweddol yma.
>> Iawn, felly nawr rydym am i wirio bod ein keyword mewn gwirionedd yn ddilys.
Y gair allweddol a ddefnyddiwn i amgryptio llinynnau Dylai unig fod yn nhrefn yr wyddor
cymeriadau.
Os yw'r defnyddiwr gofnodi nad ydynt yn nhrefn yr wyddor cymeriadau, dylem ddweud, gair allweddol
Rhaid defnyddio i drwy Z ac yna'n dychwelyd.
Felly, mae hyn i ailadrodd dolen dros yr holl cymeriadau ein gair allweddol, gwirio
os nad oes un yn nhrefn yr wyddor, yna mae angen i argraffu y rhybudd.
>> Nawr, ar ôl i ni gyrraedd y pwynt hwn, rydym yn gwybod bod yn rhaid i'r llinyn fod yn gywir.
Mae'n rhaid i'r gair allweddol fod yn gywir.
Ac yn awr mae angen i ni gael y neges gan y defnyddiwr y maent am i ni
amgryptio gyda'r ymadrodd allweddol.
Felly, i gael y neges, mae gennym wneud tra ddolen sy'n mynd i
barhaus yn cael llinyn gan y defnyddiwr nes eu bod yn mynd i mewn i llinyn dilys.
>> Parhaus, rydym yn gweld yma newidyn hwn, int nun_letters_seen.
Byddwn yn gweld pam bod angen hynny mewn eiliad.
Ond mae hyn i ddolen yn mynd i ailadrodd o i yn hafal i 0 yr holl ffordd i fyny at i
yn dychwelyd n, sy'n golygu ein bod yn bwysleisio'r dros yr holl posibl
cymeriadau yn ein neges.
Oherwydd yr ydym am i amgryptio pob un y cymeriadau yn ein neges.
Felly, yn sylwi yn ei wneud os (isalphamessage [I], oherwydd nid ydym am i amgryptio
cymeriadau nad ydynt yn nhrefn yr wyddor.
Os oes symbolau, mannau, neu rifau, nid ydym yn ei wneud
eisiau i amgryptio hynny.
>> Yn awr, gan dybio ei fod yn nhrefn yr wyddor, rydym yn gyntaf am chyfrif i maes yr hyn yr ydym
mewn gwirionedd, am i amgryptio y neges gan ddefnyddio.
Felly, beth ydw i'n ei olygu wrth hynny?
>> Gadewch i ni dybio bod y ymadrodd allweddol y defnyddiwr gofnodi yn abc.
Dyna beth rydym yn ei ddefnyddio i amgryptio.
Yn awr, yn ddiniwed, credwn fod yn golygu bod rydym am i amgryptio cymeriad cyntaf
ein neges o 0, gan fod modd cylchdroi cymeriad erbyn 0.
>> Rydym am i amgryptio yr ail gymeriad gan 1, trydydd gymeriad â 2,
y pedwerydd gymeriad 0, y pumed 1, y chweched o 2, ac yn y blaen.
Ond cofiwch, ein bod am hepgor mannau a symbolau a rhifau.
Mae hyn yn golygu os bydd y defnyddiwr wedi mynd i helo byd wrth y neges
eu bod am i amgryptio, yna rydym am i amgryptio y h o 0
sy'n cyfateb i yn, yr e erbyn 1, mae'r l erbyn 2, mae'r l erbyn 0, mae'r o gan 1.
Rydym am i hepgor y gofod, amgryptio y w erbyn 2, mae'r o 0, 1, 2, 0.
Felly sylwi, os nad ydym wedi hepgor y gofod, yna byddem wedi amgryptio
y w o 0 a daeth i ben i fyny gyda y llinyn anghywir.
>> OK, mae hyn yn hyn y mae angen y newidyn num_letters_seen ar gyfer.
Pe byddem yn jyst yn mynd i amgryptio drwy ddefnyddio dull hwn, nad yw'n sgip
symbolau, mannau, a rhifau, yna rydym yn Gallai jyst arfer 'r newidyn i â'r hyn
i mynegai i mewn i'n ymadrodd allweddol gyda.
Mae angen i ni ddefnyddio num_letters_seen i gadw golwg ar y lle gwirioneddol yn y
ymadrodd allweddol yr ydym am ei mynegai.
Felly yma, os y gair allweddol sydd gennym, os num_letter_seen keyword_length mod, felly
pam mae angen i ni i mod yn ôl hyd allweddair?
>> Wel, helo byd yn enghraifft dda.
Os yw'r gair allweddol yn abc, yna mae angen i amgryptio barhaus gan yna b
Yna, c, yna lapio yn ôl o gwmpas, a, b, c, a, b, c.
Felly mae angen i mod yn ōl hyd gair allweddol er mwyn lapio ôl o gwmpas.
>> Felly, os yw hyn yn llythyr priflythyren, yna rydym eisiau i amgryptio gan y
sefyllfa o'r llythyr hwnnw yn y wyddor, yr ydym yn cael ychydig
tynnu allan gyfalaf A. A yn yr un modd, ar gyfer llythrennau bach, rydym yn
yn gallu cael y allweddol yr ydym eisiau trwy tynnu allan lythrennau bach a.
Felly, ni waeth a yw'r llythyr yn yr ymadrodd allweddol oedd cyfalaf neu
llythyr llythrennau bach, rydym yn mynd i amgryptio gan yr un swm.
>> Nawr ein bod wedi ein allweddol, rydym yn gweld yma, os neges i yn priflythyren
cymeriad, yna rydym yn awyddus i gyfrifo'r safle yn y wyddor honno
cymeriad, ychwanegu ein allwedd i hyn, lapio yn ôl o gwmpas felly os ydym yn mynd heibio
z rydym yn mynd yn ôl at a, b, c, ac yn y blaen.
Yna, yn olaf, adio ar gyfalaf A. Felly rydym yn symud yn ôl i mewn i'r [? ASCII?]
amrywiaeth o cymeriadau hyn yn hytrach na'r sefyllfa rhifol yn yr wyddor
nodau hyn.
>> Ac rydym yn gwneud yr un peth ar gyfer cymeriadau llythrennau bach.
Ac eithrio yr ydym am dynnu allan llythrennau bach a ac yn ychwanegu yn ôl ar yn y
diwedd, llythrennau bach a.
Hysbysiad bod num_letter_seen dim ond gynyddrannedig os neges fi oedd
yn nhrefn yr wyddor.
Dyma sut rydym sgip mannau, symbolau, a niferoedd yn ein ymadrodd allweddol, gan fod
num_letter_seen yw'r hyn yr ydym yn ei ddefnyddio i mynegai i mewn i'n allweddair.
>> Yn olaf, yn y diwedd, nawr bod neges i wedi cael ei amgryptio, rydym yn
argraffu neges i.
A dyna ni.
Fy enw i yw Rob.
Ac mae hyn yn Vigenere.
>> [CHWARAE CERDDORIAETH]