1 00:00:00,000 --> 00:00:11,980 2 00:00:11,980 --> 00:00:16,980 >> ROB: Hi, Im 'Rob, a gadewch i ni dehongli y rhaglen Vigenere. 3 00:00:16,980 --> 00:00:21,180 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 4 00:00:21,180 --> 00:00:23,240 iddynt yn y llinell orchymyn. 5 00:00:23,240 --> 00:00:28,720 Felly, os nad argc yw 2 sy'n golygu naill ai nad yw'r defnyddiwr yn mynd i mewn i'r ydym yn llinyn 6 00:00:28,720 --> 00:00:31,780 am fod yn defnyddio fel ein amgryptio llinyn, neu eu bod 7 00:00:31,780 --> 00:00:32,890 aeth gormod o bethau. 8 00:00:32,890 --> 00:00:35,130 Ac nid ydym yn gwybod beth i'w wneud gyda phethau eraill hynny. 9 00:00:35,130 --> 00:00:37,960 >> Felly, byddwn yn dweud wrthynt beth y maent ddylai fod wedi mynd. 10 00:00:37,960 --> 00:00:39,300 Ac rydym yn dychwelyd. 11 00:00:39,300 --> 00:00:44,570 Yn awr, gan dybio bod argc yn 2, gallwn barhau â gweddill y rhaglen. 12 00:00:44,570 --> 00:00:47,890 >> Rydym yn alias enw argv [1] 13 00:00:47,890 --> 00:00:49,750 i mewn i'r gair allweddol amrywiol. 14 00:00:49,750 --> 00:00:51,860 Felly, nad oes gennym i ddefnyddio'r enw argv [1] 15 00:00:51,860 --> 00:00:53,050 drwy gydol gweddill y rhaglen. 16 00:00:53,050 --> 00:00:55,570 Ac efallai byddwn yn anghofio beth sy'n golygu ac yn y blaen. 17 00:00:55,570 --> 00:00:57,830 Allweddair yn enw llawer brafiach. 18 00:00:57,830 --> 00:01:01,982 A byddwn yn ar unwaith chrafangia 'r hyd ein gair allweddol yma. 19 00:01:01,982 --> 00:01:07,460 >> Iawn, felly nawr rydym am i wirio bod ein keyword mewn gwirionedd yn ddilys. 20 00:01:07,460 --> 00:01:11,250 Y gair allweddol a ddefnyddiwn i amgryptio llinynnau Dylai unig fod yn nhrefn yr wyddor 21 00:01:11,250 --> 00:01:12,400 cymeriadau. 22 00:01:12,400 --> 00:01:16,830 Os yw'r defnyddiwr gofnodi nad ydynt yn nhrefn yr wyddor cymeriadau, dylem ddweud, gair allweddol 23 00:01:16,830 --> 00:01:20,170 Rhaid defnyddio i drwy Z ac yna'n dychwelyd. 24 00:01:20,170 --> 00:01:24,370 Felly, mae hyn i ailadrodd dolen dros yr holl cymeriadau ein gair allweddol, gwirio 25 00:01:24,370 --> 00:01:31,870 os nad oes un yn nhrefn yr wyddor, yna mae angen i argraffu y rhybudd. 26 00:01:31,870 --> 00:01:36,285 >> Nawr, ar ôl i ni gyrraedd y pwynt hwn, rydym yn gwybod bod yn rhaid i'r llinyn fod yn gywir. 27 00:01:36,285 --> 00:01:38,230 Mae'n rhaid i'r gair allweddol fod yn gywir. 28 00:01:38,230 --> 00:01:40,880 Ac yn awr mae angen i ni gael y neges gan y defnyddiwr y maent am i ni 29 00:01:40,880 --> 00:01:43,910 amgryptio gyda'r ymadrodd allweddol. 30 00:01:43,910 --> 00:01:46,780 Felly, i gael y neges, mae gennym wneud tra ddolen sy'n mynd i 31 00:01:46,780 --> 00:01:52,650 barhaus yn cael llinyn gan y defnyddiwr nes eu bod yn mynd i mewn i llinyn dilys. 32 00:01:52,650 --> 00:01:58,690 >> Parhaus, rydym yn gweld yma newidyn hwn, int nun_letters_seen. 33 00:01:58,690 --> 00:02:01,300 Byddwn yn gweld pam bod angen hynny mewn eiliad. 34 00:02:01,300 --> 00:02:07,320 Ond mae hyn i ddolen yn mynd i ailadrodd o i yn hafal i 0 yr holl ffordd i fyny at i 35 00:02:07,320 --> 00:02:10,940 yn dychwelyd n, sy'n golygu ein bod yn bwysleisio'r dros yr holl posibl 36 00:02:10,940 --> 00:02:13,020 cymeriadau yn ein neges. 37 00:02:13,020 --> 00:02:17,370 Oherwydd yr ydym am i amgryptio pob un y cymeriadau yn ein neges. 38 00:02:17,370 --> 00:02:22,970 Felly, yn sylwi yn ei wneud os (isalphamessage [I], oherwydd nid ydym am i amgryptio 39 00:02:22,970 --> 00:02:25,660 cymeriadau nad ydynt yn nhrefn yr wyddor. 40 00:02:25,660 --> 00:02:28,810 Os oes symbolau, mannau, neu rifau, nid ydym yn ei wneud 41 00:02:28,810 --> 00:02:30,730 eisiau i amgryptio hynny. 42 00:02:30,730 --> 00:02:37,220 >> Yn awr, gan dybio ei fod yn nhrefn yr wyddor, rydym yn gyntaf am chyfrif i maes yr hyn yr ydym 43 00:02:37,220 --> 00:02:40,890 mewn gwirionedd, am i amgryptio y neges gan ddefnyddio. 44 00:02:40,890 --> 00:02:42,710 Felly, beth ydw i'n ei olygu wrth hynny? 45 00:02:42,710 --> 00:02:46,740 >> Gadewch i ni dybio bod y ymadrodd allweddol y defnyddiwr gofnodi yn abc. 46 00:02:46,740 --> 00:02:49,070 Dyna beth rydym yn ei ddefnyddio i amgryptio. 47 00:02:49,070 --> 00:02:54,850 Yn awr, yn ddiniwed, credwn fod yn golygu bod rydym am i amgryptio cymeriad cyntaf 48 00:02:54,850 --> 00:02:59,740 ein neges o 0, gan fod modd cylchdroi cymeriad erbyn 0. 49 00:02:59,740 --> 00:03:04,395 >> Rydym am i amgryptio yr ail gymeriad gan 1, trydydd gymeriad â 2, 50 00:03:04,395 --> 00:03:09,170 y pedwerydd gymeriad 0, y pumed 1, y chweched o 2, ac yn y blaen. 51 00:03:09,170 --> 00:03:14,440 Ond cofiwch, ein bod am hepgor mannau a symbolau a rhifau. 52 00:03:14,440 --> 00:03:21,520 Mae hyn yn golygu os bydd y defnyddiwr wedi mynd i helo byd wrth y neges 53 00:03:21,520 --> 00:03:26,590 eu bod am i amgryptio, yna rydym am i amgryptio y h o 0 54 00:03:26,590 --> 00:03:32,680 sy'n cyfateb i yn, yr e erbyn 1, mae'r l erbyn 2, mae'r l erbyn 0, mae'r o gan 1. 55 00:03:32,680 --> 00:03:41,050 Rydym am i hepgor y gofod, amgryptio y w erbyn 2, mae'r o 0, 1, 2, 0. 56 00:03:41,050 --> 00:03:45,250 Felly sylwi, os nad ydym wedi hepgor y gofod, yna byddem wedi amgryptio 57 00:03:45,250 --> 00:03:51,240 y w o 0 a daeth i ben i fyny gyda y llinyn anghywir. 58 00:03:51,240 --> 00:03:57,470 >> OK, mae hyn yn hyn y mae angen y newidyn num_letters_seen ar gyfer. 59 00:03:57,470 --> 00:04:04,450 Pe byddem yn jyst yn mynd i amgryptio drwy ddefnyddio dull hwn, nad yw'n sgip 60 00:04:04,450 --> 00:04:09,860 symbolau, mannau, a rhifau, yna rydym yn Gallai jyst arfer 'r newidyn i â'r hyn 61 00:04:09,860 --> 00:04:12,540 i mynegai i mewn i'n ymadrodd allweddol gyda. 62 00:04:12,540 --> 00:04:17,620 Mae angen i ni ddefnyddio num_letters_seen i gadw golwg ar y lle gwirioneddol yn y 63 00:04:17,620 --> 00:04:21,146 ymadrodd allweddol yr ydym am ei mynegai. 64 00:04:21,146 --> 00:04:32,240 Felly yma, os y gair allweddol sydd gennym, os num_letter_seen keyword_length mod, felly 65 00:04:32,240 --> 00:04:34,570 pam mae angen i ni i mod yn ôl hyd allweddair? 66 00:04:34,570 --> 00:04:36,630 >> Wel, helo byd yn enghraifft dda. 67 00:04:36,630 --> 00:04:42,310 Os yw'r gair allweddol yn abc, yna mae angen i amgryptio barhaus gan yna b 68 00:04:42,310 --> 00:04:45,740 Yna, c, yna lapio yn ôl o gwmpas, a, b, c, a, b, c. 69 00:04:45,740 --> 00:04:50,110 Felly mae angen i mod yn ōl hyd gair allweddol er mwyn lapio ôl o gwmpas. 70 00:04:50,110 --> 00:04:57,280 >> Felly, os yw hyn yn llythyr priflythyren, yna rydym eisiau i amgryptio gan y 71 00:04:57,280 --> 00:05:01,450 sefyllfa o'r llythyr hwnnw yn y wyddor, yr ydym yn cael ychydig 72 00:05:01,450 --> 00:05:06,730 tynnu allan gyfalaf A. A yn yr un modd, ar gyfer llythrennau bach, rydym yn 73 00:05:06,730 --> 00:05:13,000 yn gallu cael y allweddol yr ydym eisiau trwy tynnu allan lythrennau bach a. 74 00:05:13,000 --> 00:05:16,910 Felly, ni waeth a yw'r llythyr yn yr ymadrodd allweddol oedd cyfalaf neu 75 00:05:16,910 --> 00:05:21,640 llythyr llythrennau bach, rydym yn mynd i amgryptio gan yr un swm. 76 00:05:21,640 --> 00:05:28,680 >> Nawr ein bod wedi ein allweddol, rydym yn gweld yma, os neges i yn priflythyren 77 00:05:28,680 --> 00:05:32,660 cymeriad, yna rydym yn awyddus i gyfrifo'r safle yn y wyddor honno 78 00:05:32,660 --> 00:05:39,460 cymeriad, ychwanegu ein allwedd i hyn, lapio yn ôl o gwmpas felly os ydym yn mynd heibio 79 00:05:39,460 --> 00:05:43,170 z rydym yn mynd yn ôl at a, b, c, ac yn y blaen. 80 00:05:43,170 --> 00:05:49,070 Yna, yn olaf, adio ar gyfalaf A. Felly rydym yn symud yn ôl i mewn i'r [? ASCII?] 81 00:05:49,070 --> 00:05:52,010 amrywiaeth o cymeriadau hyn yn hytrach na'r sefyllfa rhifol yn yr wyddor 82 00:05:52,010 --> 00:05:53,540 nodau hyn. 83 00:05:53,540 --> 00:05:56,610 >> Ac rydym yn gwneud yr un peth ar gyfer cymeriadau llythrennau bach. 84 00:05:56,610 --> 00:06:00,070 Ac eithrio yr ydym am dynnu allan llythrennau bach a ac yn ychwanegu yn ôl ar yn y 85 00:06:00,070 --> 00:06:02,900 diwedd, llythrennau bach a. 86 00:06:02,900 --> 00:06:08,120 Hysbysiad bod num_letter_seen dim ond gynyddrannedig os neges fi oedd 87 00:06:08,120 --> 00:06:09,640 yn nhrefn yr wyddor. 88 00:06:09,640 --> 00:06:15,790 Dyma sut rydym sgip mannau, symbolau, a niferoedd yn ein ymadrodd allweddol, gan fod 89 00:06:15,790 --> 00:06:20,520 num_letter_seen yw'r hyn yr ydym yn ei ddefnyddio i mynegai i mewn i'n allweddair. 90 00:06:20,520 --> 00:06:24,540 >> Yn olaf, yn y diwedd, nawr bod neges i wedi cael ei amgryptio, rydym yn 91 00:06:24,540 --> 00:06:26,280 argraffu neges i. 92 00:06:26,280 --> 00:06:27,890 A dyna ni. 93 00:06:27,890 --> 00:06:28,670 Fy enw i yw Rob. 94 00:06:28,670 --> 00:06:31,020 Ac mae hyn yn Vigenere. 95 00:06:31,020 --> 00:06:32,850 >> [CHWARAE CERDDORIAETH] 96 00:06:32,850 --> 00:06:36,651