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]