1 00:00:00,000 --> 00:00:13,000 2 00:00:13,000 --> 00:00:15,890 >> ROB BOWDEN: mwen se Rob, ak kite a jwenn fann. 3 00:00:15,890 --> 00:00:19,390 Se konsa, sonje soti nan espèk a pset ki nou pral yo dwe ki bezwen yo sèvi ak nan 4 00:00:19,390 --> 00:00:20,890 kripte fonksyon. 5 00:00:20,890 --> 00:00:26,330 Pou paj la moun, nou gen de regle defini _xopensource. 6 00:00:26,330 --> 00:00:28,290 pa enkyete sou poukisa nou bezwen fè sa. 7 00:00:28,290 --> 00:00:31,550 Epi tou regle gen ladan unistd.h. 8 00:00:31,550 --> 00:00:35,920 >> Se konsa, yon fwa sa a, se soti nan fason an, se pou yo jwenn nan pwogram aktyèl la. 9 00:00:35,920 --> 00:00:39,570 Bagay Premye nou bezwen fè se asire w ke itilizatè a antre nan yon chiffres ki valab 10 00:00:39,570 --> 00:00:41,520 modpas nan liy lan lòd. 11 00:00:41,520 --> 00:00:46,050 Sonje ke se pwogram nan sipoze yo dwe kouri tankou krak dot koupe, ak 12 00:00:46,050 --> 00:00:48,120 Lè sa a, chiffres fisèl. 13 00:00:48,120 --> 00:00:52,990 >> Se konsa, isit la nou ap tcheke asire w ki arg nan de si nou vle 14 00:00:52,990 --> 00:00:54,380 kontinye ak pwogram nan. 15 00:00:54,380 --> 00:00:58,830 Si arg se pa de, sa vle di swa itilizatè a pa t 'antre nan yon chiffres 16 00:00:58,830 --> 00:01:02,560 modpas nan liy la bay lòd, oswa yo te antre nan pi plis pase jis chiffres a 17 00:01:02,560 --> 00:01:05,379 modpas nan liy la bay lòd, nan ki ka nou pa konnen ki sa fè ak an 18 00:01:05,379 --> 00:01:07,660 lòd liy agiman. 19 00:01:07,660 --> 00:01:11,390 >> Se konsa, si arg te de, nou ka kontinye. 20 00:01:11,390 --> 00:01:14,160 Ak isit la, nou pral deklare yon chiffres varyab. 21 00:01:14,160 --> 00:01:17,650 Se jis ale nan alyas orijinal la argv1 pou ke nan tout sa a 22 00:01:17,650 --> 00:01:20,690 pwogram nan, nou pa gen yo rele li argv1, ki Lè sa a, ou gen yo panse 23 00:01:20,690 --> 00:01:22,950 sou sa ki ki aktyèlman vle di. 24 00:01:22,950 --> 00:01:27,180 >> Se konsa, finalman, nou vle valide ki modpas la chiffres itilizatè a 25 00:01:27,180 --> 00:01:30,840 te antre nan te kapab aktyèlman te yon modpas chiffres. 26 00:01:30,840 --> 00:01:35,120 Pou chak paj la nan moun nan kripte, chiffres modpas dwe 13 27 00:01:35,120 --> 00:01:36,440 karaktè nan longè. 28 00:01:36,440 --> 00:01:41,500 Moute isit la, remake ke nou regle yo defini ankripte longè kòm 13. 29 00:01:41,500 --> 00:01:46,140 Se konsa, nou jis ap fè a asire w ke longè fil nan chiffres a 30 00:01:46,140 --> 00:01:49,090 modpas se 13. 31 00:01:49,090 --> 00:01:52,280 >> Men, si li pa, nou vle sòti pwogram nan. 32 00:01:52,280 --> 00:01:56,470 Se konsa, yon fwa sa a, se soti nan fason an, nou ka kounye a aktyèlman eseye jwenn sa a 33 00:01:56,470 --> 00:02:00,410 modpas ki te bay chiffres a modpas te ye a. 34 00:02:00,410 --> 00:02:04,870 Isit la, nou vle gen tan pwan sèl la soti nan modpas la chiffres. 35 00:02:04,870 --> 00:02:08,930 Sonje byen, pou chak paj la moun, ki la de premye karaktè nan yon chiffres 36 00:02:08,930 --> 00:02:10,590 fisèl, renmen isit la - 37 00:02:10,590 --> 00:02:12,770 50ZPJ yo ak sou sa - 38 00:02:12,770 --> 00:02:16,170 de premye karaktè yo bay nou sèl la ki te itilize 39 00:02:16,170 --> 00:02:18,080 nan fonksyon an kripte. 40 00:02:18,080 --> 00:02:21,740 >> Ak isit la, nou wè ke sèl la te ha. 41 00:02:21,740 --> 00:02:27,610 Se konsa, nou vle a kapab bay kopi de nan premye karaktè, longè sèl ke yo te regle 42 00:02:27,610 --> 00:02:30,230 defini kòm de. 43 00:02:30,230 --> 00:02:35,970 Nou gen a kapab bay kopi de premye karaktè yo nan sa a etalaj, sèl. 44 00:02:35,970 --> 00:02:39,340 Remake nou bezwen longè sèl plis yon sèl, depi nou toujou bezwen yon nil 45 00:02:39,340 --> 00:02:42,440 Terminator nan fen sèl nou an. 46 00:02:42,440 --> 00:02:46,940 >> Lè sa a, nou pral deklare sa a etalaj, envite, longè max gwosè plis 47 00:02:46,940 --> 00:02:51,930 yon sèl, kote max longè se regle yo defini kòm uit, depi modpas la maksimòm 48 00:02:51,930 --> 00:02:55,090 se uit karaktè nan longè. 49 00:02:55,090 --> 00:02:59,860 Epi nou ap ale nan sèvi ak sa a répétèr sou tout strings posib ke te kapab 50 00:02:59,860 --> 00:03:01,430 gen modpas ki valid. 51 00:03:01,430 --> 00:03:07,720 Se konsa, si karaktè yo valab nan yon modpas yo te jis yon, B, ak C, lè sa a 52 00:03:07,720 --> 00:03:14,970 nou ta repekte sou yon, B, C, aa, BA, ca, ak sou sa, jouk 53 00:03:14,970 --> 00:03:16,690 nou jwenn yo wè cccccccc - 54 00:03:16,690 --> 00:03:19,600 uit a c. 55 00:03:19,600 --> 00:03:23,620 >> Men, si nou pa gen desann yon valab modpas, Lè sa a, nou bezwen yo di ke la 56 00:03:23,620 --> 00:03:26,590 chiffres fisèl pa t ' ki valid yo kòmanse avèk yo. 57 00:03:26,590 --> 00:03:29,970 Se konsa, kounye a, nou rive jwenn sa a pandan y ap 1 bouk. 58 00:03:29,970 --> 00:03:33,100 Avi sa vle di li nan yon bouk enfini. 59 00:03:33,100 --> 00:03:36,430 >> Avi pa gen okenn deklarasyon kraze andedan nan sa a bouk enfini. 60 00:03:36,430 --> 00:03:38,570 Gen yo, se sèlman retounen deklarasyon. 61 00:03:38,570 --> 00:03:41,210 Se konsa, nou pa janm aktyèlman atann sòti bouk la. 62 00:03:41,210 --> 00:03:44,750 Nou sèlman espere soti nan pwogram nan. 63 00:03:44,750 --> 00:03:48,220 Mwen te ajoute deklarasyon sa a ekri an lèt detache a tèt sa a bouk jis enprime soti 64 00:03:48,220 --> 00:03:51,790 sa ki devine aktyèl nou an nan sa modpas la se. 65 00:03:51,790 --> 00:03:53,630 >> Koulye a, ki sa ki sa a bouk fè la a? 66 00:03:53,630 --> 00:03:58,330 Li nan loupin sou tout strings posib ki te kapab modpas ki valid. 67 00:03:58,330 --> 00:04:02,700 Premye bagay nou pral fè se pran devine nou an ki ajou pou sa a 68 00:04:02,700 --> 00:04:03,920 modpas se. 69 00:04:03,920 --> 00:04:07,230 Nou pral pran sèl la ke nou te pwan soti nan fisèl la chiffres, epi nou ap 70 00:04:07,230 --> 00:04:09,850 ale nan ankripte devine la. 71 00:04:09,850 --> 00:04:14,760 Sa ap ba nou yon devine chiffres, ki nou ap ale nan konpare kont 72 00:04:14,760 --> 00:04:18,810 fisèl la chiffres ki itilizatè a te antre nan nan liy lan lòd. 73 00:04:18,810 --> 00:04:23,030 >> Si yo se menm bagay la, nan ka sa a fisèl konparab ap retounen zewo, si 74 00:04:23,030 --> 00:04:28,050 yo ap menm bagay la tou, lè sa a devine te la modpas ki te pwodwi chiffres a 75 00:04:28,050 --> 00:04:33,520 fisèl, nan ka sa a nou ka ekri ak lèt ​​detache ke kòm modpas nou yo ak retounen. 76 00:04:33,520 --> 00:04:37,520 Men, si yo pa t 'menm bagay la tou, ki vle di devine nou an te kòrèk. 77 00:04:37,520 --> 00:04:43,250 >> Men, nou vle répétèr pwochen devine nan ki valid. 78 00:04:43,250 --> 00:04:46,410 Se konsa, se sa ki sa a pandan y ap bouk ap eseye fè. 79 00:04:46,410 --> 00:04:51,760 Li nan ale nan répétèr devine nou nan pwochen devine nan ki valid. 80 00:04:51,760 --> 00:04:56,080 Remake lè nou di ke yon N. patikilye nan devine nou an ki gen 81 00:04:56,080 --> 00:05:01,770 rive jwenn senbòl la max, ki moute isit la se regle defini kòm yon tild, depi 82 00:05:01,770 --> 00:05:05,710 sa a, se karaktè nan pi gwo ASCII valè ke yon itilizatè kapab antre nan la 83 00:05:05,710 --> 00:05:11,210 klavye, lè pèsonaj la rive nan nan max senbòl, lè sa a nou vle voye 84 00:05:11,210 --> 00:05:17,150 li tounen nan senbòl minimòm-nan, ki se yon espas, ankò ASCII ki pi ba a 85 00:05:17,150 --> 00:05:20,800 senbòl valè ke yon itilizatè kapab antre nan klavye la. 86 00:05:20,800 --> 00:05:22,940 >> Se konsa, nou ap ale nan mete ki senbòl la minimòm. 87 00:05:22,940 --> 00:05:25,720 Lè sa a, nou pwal ale sou pèsonaj la kap vini an. 88 00:05:25,720 --> 00:05:28,730 Se konsa, kouman yo devine nou ale nan répétèr? 89 00:05:28,730 --> 00:05:33,685 Bon, si karaktè yo ki valab se yon b,, ak c, lè sa a si nou te kòmanse avèk yon, 90 00:05:33,685 --> 00:05:36,630 li pral répétèr b, li pral répétèr c. 91 00:05:36,630 --> 00:05:44,360 c se senbòl max nou an, se konsa nou ap mete c tounen nan yon, senbòl minimòm-nan. 92 00:05:44,360 --> 00:05:48,100 Lè sa a, nou pral répétèr endèks pèsonaj la kap vini an. 93 00:05:48,100 --> 00:05:53,920 >> Se konsa, si devine orijinal la te c, pwochen an N. a pwal nil la 94 00:05:53,920 --> 00:05:55,560 Terminator. 95 00:05:55,560 --> 00:06:00,670 Desann isit la, remake ke si pèsonaj la ke nou kounye a ou vle 96 00:06:00,670 --> 00:06:04,690 enkreman te Terminator a nil, Lè sa a, nou pral mete l 'nan la 97 00:06:04,690 --> 00:06:06,260 minimòm senbòl. 98 00:06:06,260 --> 00:06:11,431 Se konsa, si devine a te c, Lè sa a, nou nouvo devine a pwal aa. 99 00:06:11,431 --> 00:06:16,050 Men, si devine orijinal nou an te cccc, Lè sa a devine nou nouvo 100 00:06:16,050 --> 00:06:18,380 a pwal aa. 101 00:06:18,380 --> 00:06:24,430 >> Se konsa, chak fwa nou rive nan fisèl la maksimòm nan yon longè yo bay yo, Lè sa a, nou ap 102 00:06:24,430 --> 00:06:29,090 ale nan aplike nan fisèl la minimòm nan longè a kap vini an, ki pral 103 00:06:29,090 --> 00:06:34,420 jis pou tout karaktè nan senbòl la minimòm. 104 00:06:34,420 --> 00:06:36,970 Koulye a, ki sa ki chèk sa-a ap fè isit la? 105 00:06:36,970 --> 00:06:42,780 Bon, si endèks te deplase soti nan wityèm lan N. pèsonaj la nèf - 106 00:06:42,780 --> 00:06:46,460 pou nou ajoute uit a c kòm anvan nou devine - 107 00:06:46,460 --> 00:06:51,270 Lè sa a, endèks ki pral konsantre sou la dènye nil Terminator nan devine nou 108 00:06:51,270 --> 00:06:57,990 etalaj, ki pa vle di ke yo aktyèlman dwe itilize nan modpas nou an. 109 00:06:57,990 --> 00:07:03,530 >> Se konsa, si nou yo ap chita sou ki nil dènye Terminator, lè sa a nou pa yo te jwenn yon 110 00:07:03,530 --> 00:07:07,750 modpas ki nan valab lè l sèvi avèk jis wit karaktè, ki vle di pa gen okenn 111 00:07:07,750 --> 00:07:10,550 valab modpas ki chifre nan fisèl la bay yo. 112 00:07:10,550 --> 00:07:13,520 Epi nou gen ekri ak lèt ​​detache ki, li di nou pa t 'kapab jwenn yon ki valab 113 00:07:13,520 --> 00:07:16,100 modpas, epi retounen. 114 00:07:16,100 --> 00:07:20,280 Se konsa, sa a bouk pandan y ap ki pral répétèr sou tout strings posib. 115 00:07:20,280 --> 00:07:24,640 >> Si li jwenn nenpòt ki chifre a espere fisèl chiffres, li pral 116 00:07:24,640 --> 00:07:26,190 retounen ki modpas. 117 00:07:26,190 --> 00:07:29,610 Epi li li pa jwenn anyen, lè sa a li pral retounen, enprime ke li 118 00:07:29,610 --> 00:07:31,910 pa t 'kapab jwenn anyen. 119 00:07:31,910 --> 00:07:39,220 Koulye a, remake ke iteration sou tout strings posib se pwobableman ale nan 120 00:07:39,220 --> 00:07:40,420 pran yon ti tan. 121 00:07:40,420 --> 00:07:43,590 Se pou yo aktyèlman wè ki jan long ki pran. 122 00:07:43,590 --> 00:07:47,230 >> Se pou yo fè krak. 123 00:07:47,230 --> 00:07:51,050 Oke, Oops - li di endefini referans a kripte. 124 00:07:51,050 --> 00:07:55,330 Se konsa, sonje, pou p la kouche espèk ak tou moun paj la pou kripte ke nou 125 00:07:55,330 --> 00:07:58,130 bezwen lyen an nan kripte. 126 00:07:58,130 --> 00:08:01,130 Koulye a, default la fè lòd pa konnen ke ou 127 00:08:01,130 --> 00:08:03,010 vle itilize ke fonksyon. 128 00:08:03,010 --> 00:08:09,680 >> Se konsa, kite a kopi lòd sa a kliyan ak jis ajoute sou nan fen a 129 00:08:09,680 --> 00:08:13,300 nan li, ki lye ak kripte. 130 00:08:13,300 --> 00:08:14,820 Koulye a, li compiles. 131 00:08:14,820 --> 00:08:23,880 Se konsa, nan kite kouri krak sou yon bay chiffres fisèl - 132 00:08:23,880 --> 00:08:25,130 se konsa pou Seza. 133 00:08:25,130 --> 00:08:28,690 134 00:08:28,690 --> 00:08:30,790 Se konsa, ki te trè vit. 135 00:08:30,790 --> 00:08:33,230 >> Remake sa a te fini sou 13. 136 00:08:33,230 --> 00:08:38,240 Oke, chiffres modpas Seza a k ap pase yo 13. 137 00:08:38,240 --> 00:08:41,650 Se konsa, kite nan eseye yon lòt modpas. 138 00:08:41,650 --> 00:08:45,830 Ann pran chiffres Hirschhorn a modpas epi eseye bravo sa. 139 00:08:45,830 --> 00:08:51,750 140 00:08:51,750 --> 00:08:55,110 >> Se konsa, remake nou te deja rive twa karaktè. 141 00:08:55,110 --> 00:08:58,660 Men, nou ap iteration sou tout sa ki posib twa-karaktè strings. 142 00:08:58,660 --> 00:09:01,420 Sa vle di nou te deja fini iteration sou tout yon sèl posib ak 143 00:09:01,420 --> 00:09:04,660 de karaktè strings. 144 00:09:04,660 --> 00:09:09,180 Koulye a, li sanble tankou sa a ki pral pran yon pandan y ap anvan nou rive jwenn nan 145 00:09:09,180 --> 00:09:10,580 kat-karaktè strings. 146 00:09:10,580 --> 00:09:14,680 Li ta ka pran yon koup la minit. 147 00:09:14,680 --> 00:09:16,055 >> Li pa t 'pran yon koup la minit. 148 00:09:16,055 --> 00:09:18,450 Nou sou strings yo kat karaktè. 149 00:09:18,450 --> 00:09:22,800 Men koulye a,, nou bezwen répétèr sou tout posib kat karaktè strings, ki 150 00:09:22,800 --> 00:09:26,000 ki ta ka pran petèt 10 minit. 151 00:09:26,000 --> 00:09:28,720 Lè sa a, lè nou rive nan senk karaktè strings, nou bezwen répétèr sou tout 152 00:09:28,720 --> 00:09:31,450 nan tout sa yo, ki ta ka pran yon èdtan koup. 153 00:09:31,450 --> 00:09:34,080 Men, nou bezwen répétèr sou tout sa ki posib sis-karaktè strings, ki 154 00:09:34,080 --> 00:09:36,560 ta ka pran yon jou koup ak sou sa. 155 00:09:36,560 --> 00:09:41,380 >> Se konsa, li ta kapab pran yon potansyèlman trè long tan yo répétèr sou tout sa ki posib 156 00:09:41,380 --> 00:09:44,850 uit-karaktè ak strings mwens. 157 00:09:44,850 --> 00:09:50,600 Se konsa, remake ke sa a se pa nesesèman yon trè efikas algorithm pou jwenn 158 00:09:50,600 --> 00:09:51,860 yon modpas. 159 00:09:51,860 --> 00:09:54,540 Ou ta ka panse ke gen se pi bon fason. 160 00:09:54,540 --> 00:10:02,230 Pou egzanp, modpas zyx a! 32ab pwobableman se pa yon modpas trè komen, 161 00:10:02,230 --> 00:10:06,440 Lè nou konsidere ke modpas la 12345 se pwobableman yon anpil plis komen. 162 00:10:06,440 --> 00:10:13,570 >> Se konsa, yon fason nan ap eseye jwenn yon modpas pi vit se jis gade 163 00:10:13,570 --> 00:10:15,560 nan modpas ki gen plis komen. 164 00:10:15,560 --> 00:10:20,480 Se konsa, pou egzanp, nou ka eseye li mo ki sòti nan yon diksyonè epi eseye tout 165 00:10:20,480 --> 00:10:24,860 mo sa yo kòm devine modpas nou an. 166 00:10:24,860 --> 00:10:29,210 Koulye a, petèt yon modpas se pa sa ki senp. 167 00:10:29,210 --> 00:10:32,600 Petèt itilizatè a te yon ti jan entelijan epi eseye ajoutant yon nonm a 168 00:10:32,600 --> 00:10:34,220 nan fen yon mo. 169 00:10:34,220 --> 00:10:37,000 >> Se konsa, petèt modpas yo te password1. 170 00:10:37,000 --> 00:10:41,520 Se konsa, ou ka eseye iteration sou tout mo nan diksyonè a ak yon sèl 171 00:10:41,520 --> 00:10:43,210 anèks nan fen a nan li. 172 00:10:43,210 --> 00:10:47,360 Lè sa a, petèt apre yo fin fè sa, ou pral kole yon de nan fen a nan li. 173 00:10:47,360 --> 00:10:50,240 >> Oswa petèt itilizatè a ap eseye yo dwe menm plis entelijan, e yo vle yo 174 00:10:50,240 --> 00:10:54,980 modpas yo dwe "HACKER," men yo ap ale nan ranplase tout tan nan la e 175 00:10:54,980 --> 00:10:56,600 ak threes. 176 00:10:56,600 --> 00:10:58,440 Se konsa, ou ta ka fè sa a tou. 177 00:10:58,440 --> 00:11:02,100 Répétèr sou tout mo nan diksyonè a men ranplase karaktè ki 178 00:11:02,100 --> 00:11:04,790 gade tankou nimewo ak chif sa yo. 179 00:11:04,790 --> 00:11:09,670 >> Se konsa, fason sa a, ou ta ka trape menm plis modpas ki yo trè komen. 180 00:11:09,670 --> 00:11:14,690 Men, nan fen a, yon fason a sèlman ou kapab pran tout modpas se brital 181 00:11:14,690 --> 00:11:17,340 fòse répétèr sou tout strings posib. 182 00:11:17,340 --> 00:11:22,100 Se konsa, nan fen a, ou bezwen répétèr sou tout strings soti nan yon karaktè 183 00:11:22,100 --> 00:11:28,110 uit karaktè, ki ta ka pran yon trè long tan, men ou bezwen fè li. 184 00:11:28,110 --> 00:11:30,024 >> Non mwen se Rob Bowden. 185 00:11:30,024 --> 00:11:31,425 Lè sa a se krak. 186 00:11:31,425 --> 00:11:36,533