1 00:00:00,000 --> 00:00:13,000 2 00:00:13,000 --> 00:00:15,890 >> ROB BOWDEN: Jien Rob, u ejja nikseb qsim. 3 00:00:15,890 --> 00:00:19,390 Mela ftakar mill-spec pset li aħna qed tmur biex tkun jeħtieġu li tuża l- 4 00:00:19,390 --> 00:00:20,890 funzjoni kripta. 5 00:00:20,890 --> 00:00:26,330 Għall-paġna bniedem, għandna żewġ hash jiddefinixxu _xopensource. 6 00:00:26,330 --> 00:00:28,290 Ma joqogħdu jinkwetaw dwar għaliex għandna bżonn li tagħmel dan. 7 00:00:28,290 --> 00:00:31,550 U wkoll hash jinkludu unistd.h. 8 00:00:31,550 --> 00:00:35,920 >> Allura ladarba dan huwa barra mill-mod, ejja jiksbu l-programm attwali. 9 00:00:35,920 --> 00:00:39,570 L-ewwel ħaġa li għandna bżonn tagħmel huwa li tiżgura l-utent daħal encrypted valida 10 00:00:39,570 --> 00:00:41,520 password fil-linja tal-kmand. 11 00:00:41,520 --> 00:00:46,050 Ftakar li l-programm huwa suppost li jitmexxew bħal dot mmejla xquq, u 12 00:00:46,050 --> 00:00:48,120 allura string encrypted. 13 00:00:48,120 --> 00:00:52,990 >> Allura hawnhekk aħna qed verifika biex jiġi żgurat li argc għal żewġ jekk irridu 14 00:00:52,990 --> 00:00:54,380 tkompli bil-programm. 15 00:00:54,380 --> 00:00:58,830 Jekk argc mhux tnejn, li tfisser jew l-utent ma daħħalx kriptat 16 00:00:58,830 --> 00:01:02,560 password fil-linja tal-kmand, jew daħal aktar minn sempliċiment il encrypted 17 00:01:02,560 --> 00:01:05,379 password fil-linja tal-kmand, li fiha każ aħna ma jafu x'għandhom jagħmlu ma 'l- 18 00:01:05,379 --> 00:01:07,660 linja argumenti kmand. 19 00:01:07,660 --> 00:01:11,390 >> Mela jekk argc kien tnejn, nistgħu tkompli. 20 00:01:11,390 --> 00:01:14,160 U hawn, aħna qed tmur biex tiddikjara varjabbli encrypted. 21 00:01:14,160 --> 00:01:17,650 Li jinsab biss ser alias l-oriġinali argv1 sabiex matul dan 22 00:01:17,650 --> 00:01:20,690 programm, aħna ma jkollhomx li hija sejħa argv1, li mbagħad trid taħseb 23 00:01:20,690 --> 00:01:22,950 dwar dak li attwalment fisser. 24 00:01:22,950 --> 00:01:27,180 >> Allura finalment, irridu biex jivvalidaw li il-password encrypted l-utent 25 00:01:27,180 --> 00:01:30,840 jiddaħħlu jistgħu jkunu ġew attwalment password encrypted. 26 00:01:30,840 --> 00:01:35,120 Per il-paġna bniedem ta 'kripta, l- password encrypted għandu jkun ta '13 27 00:01:35,120 --> 00:01:36,440 karattri twil. 28 00:01:36,440 --> 00:01:41,500 Up hawn, avviż li aħna hash definit kriptaġġ tul bħala 13. 29 00:01:41,500 --> 00:01:46,140 Allura aħna qed biss tagħmel ċert li l- tul sensiela ta 'l encrypted 30 00:01:46,140 --> 00:01:49,090 password huwa 13. 31 00:01:49,090 --> 00:01:52,280 >> U jekk mhuwiex, irridu għall-ħruġ tal-programm. 32 00:01:52,280 --> 00:01:56,470 Allura ladarba dan huwa barra mill-mod, nistgħu issa fil-fatt tipprova ssib dak li l- 33 00:01:56,470 --> 00:02:00,410 password li taw l encrypted password kien. 34 00:02:00,410 --> 00:02:04,870 Hawnhekk, irridu li grab l-melħ mill-password encrypted. 35 00:02:04,870 --> 00:02:08,930 Ftakar, kull l-paġna bniedem, li l- ewwel żewġ karattri tal kriptat 36 00:02:08,930 --> 00:02:10,590 spag, bħal hawn - 37 00:02:10,590 --> 00:02:12,770 50ZPJ u l-bqija - 38 00:02:12,770 --> 00:02:16,170 l-ewwel żewġ karattri jagħtu us il-melħ li ntuża 39 00:02:16,170 --> 00:02:18,080 fil-funzjoni kripta. 40 00:02:18,080 --> 00:02:21,740 >> U hawn, naraw li l-melħ kien ha. 41 00:02:21,740 --> 00:02:27,610 Allura aħna tixtieq li kopja l-ewwel tnejn karattri, tul melħ jkunu hash 42 00:02:27,610 --> 00:02:30,230 definita bħala tnejn. 43 00:02:30,230 --> 00:02:35,970 Irridu kopja l-ewwel żewġ karattri fis dan array, melħ. 44 00:02:35,970 --> 00:02:39,340 Avviż li għandna bżonn tul melħ plus waħda, peress li aħna għad għandhom bżonn null 45 00:02:39,340 --> 00:02:42,440 terminatur fl-aħħar ta 'melħ tagħna. 46 00:02:42,440 --> 00:02:46,940 >> Imbagħad aħna qed tmur biex jiddikjara dan array, guest, tat-tul max daqs plus 47 00:02:46,940 --> 00:02:51,930 wieħed, fejn it-tul max huwa hash definit bħala tmienja, peress li l-password massimu 48 00:02:51,930 --> 00:02:55,090 huwa tmien karattri fit-tul. 49 00:02:55,090 --> 00:02:59,860 U aħna qed tmur biex tuża din jtenni fuq kordi kollha possibbli li jistgħu 50 00:02:59,860 --> 00:03:01,430 jkun passwords validi. 51 00:03:01,430 --> 00:03:07,720 Allura jekk il-karattri validi fi password kienu biss, b, u ċ, allura 52 00:03:07,720 --> 00:03:14,970 aħna se jtenni fuq, b, c, aa, ba, ca, u l-bqija, sakemm 53 00:03:14,970 --> 00:03:16,690 irridu jiksbu biex tara cccccccc - 54 00:03:16,690 --> 00:03:19,600 tmienja c'S. 55 00:03:19,600 --> 00:03:23,620 >> U jekk aħna ma jistabbilixxi validu password, allura għandna bżonn li ngħidu li l- 56 00:03:23,620 --> 00:03:26,590 string encrypted ma kienx validu li tibda bil. 57 00:03:26,590 --> 00:03:29,970 Allura issa, aħna jilħqu dan filwaqt li 1 loop. 58 00:03:29,970 --> 00:03:33,100 Avviż li jfisser li huwa loop infinita. 59 00:03:33,100 --> 00:03:36,430 >> Avviż hemm ebda stqarrija break ġewwa ta 'dan loop infinita. 60 00:03:36,430 --> 00:03:38,570 Hemm biss ritorn dikjarazzjonijiet. 61 00:03:38,570 --> 00:03:41,210 Allura aħna qatt attwalment jistennew għall-ħruġ tal loop. 62 00:03:41,210 --> 00:03:44,750 Aħna biss nistennew għall-ħruġ tal-programm. 63 00:03:44,750 --> 00:03:48,220 Stajt miżjud din l-istqarrija għall-istampar Barra minn dan loop għal ftit jistampa 64 00:03:48,220 --> 00:03:51,790 dak raden attwali tagħna fil dak li l-password huwa. 65 00:03:51,790 --> 00:03:53,630 >> Issa, dak li huwa dan loop tagħmel? 66 00:03:53,630 --> 00:03:58,330 Huwa looping fuq kordi kollha possibbli li jista 'jkun passwords validi. 67 00:03:58,330 --> 00:04:02,700 L-ewwel ħaġa aħna qed tmur biex tagħmel hu tieħu raden attwali tagħna għal dak il- 68 00:04:02,700 --> 00:04:03,920 password. 69 00:04:03,920 --> 00:04:07,230 Aħna ser nieħdu l-melħ li aħna grabbed minn -sekwenza encrypted, u aħna 70 00:04:07,230 --> 00:04:09,850 jmorru għall-kriptaġġ l-raden. 71 00:04:09,850 --> 00:04:14,760 Dan se tagħtina raden encrypted, li aħna qed tmur biex iqabblu kontra 72 00:04:14,760 --> 00:04:18,810 -sekwenza encrypted li l-utent daħal fil-linja tal-kmand. 73 00:04:18,810 --> 00:04:23,030 >> Jekk huma l-istess, f'liema każ string komparabbli se terġa 'lura zero, jekk 74 00:04:23,030 --> 00:04:28,050 dawn qed l-istess, allura raden kien il- password li ġġenerat l encrypted 75 00:04:28,050 --> 00:04:33,520 spag, f'liema każ nistgħu jistampaw li bħala password tagħna u r-ritorn. 76 00:04:33,520 --> 00:04:37,520 Iżda jekk dawn ma kinux l-istess, li ifisser raden tagħna kienet żbaljata. 77 00:04:37,520 --> 00:04:43,250 >> U rridu li jtenni li l-raden validu li jmiss. 78 00:04:43,250 --> 00:04:46,410 Allura dak hu li dan waqt li loop qed tipprova tagħmel. 79 00:04:46,410 --> 00:04:51,760 Huwa ser jtenni raden tagħna għall-raden validu li jmiss. 80 00:04:51,760 --> 00:04:56,080 Avviż li meta ngħidu li karattru partikolari fil raden tagħna 81 00:04:56,080 --> 00:05:01,770 laħaq is-simbolu max, li up here huwa hash definit bħala tilde, peress 82 00:05:01,770 --> 00:05:05,710 li l-akbar karattru valur ASCII li utent jista 'jidħol fil- 83 00:05:05,710 --> 00:05:11,210 keyboard, meta l-karattru jilħaq il- max simbolu, allura aħna trid tibgħat 84 00:05:11,210 --> 00:05:17,150 lura lill-simbolu minimu, li huwa spazju, għal darb'oħra l-ASCII aktar baxx 85 00:05:17,150 --> 00:05:20,800 simbolu valur li utent jista ' jidħol fil-keyboard. 86 00:05:20,800 --> 00:05:22,940 >> Allura aħna qed tmur biex ikun stabbilit li is-simbolu minimu. 87 00:05:22,940 --> 00:05:25,720 U allura aħna qed tmur biex jmorru fuq il-karattru li jmiss. 88 00:05:25,720 --> 00:05:28,730 Allura kif huma guesses tagħna se jtenni? 89 00:05:28,730 --> 00:05:33,685 Ukoll, jekk il-karattri huma validi a, b, u c, allura jekk aħna beda, 90 00:05:33,685 --> 00:05:36,630 dan ser jtenni li b, dan ser jtenni li ċ. 91 00:05:36,630 --> 00:05:44,360 c hija simbolu max tagħna, hekk aħna ser jistabbilixxu c lura għal, is-simbolu minimu. 92 00:05:44,360 --> 00:05:48,100 U allura aħna ser jtenni indiċi għall-karattru li jmiss. 93 00:05:48,100 --> 00:05:53,920 >> Allura jekk il-raden oriġinali kienet c, li jmiss karattru se tkun l null 94 00:05:53,920 --> 00:05:55,560 terminatur. 95 00:05:55,560 --> 00:06:00,670 Down hawn, avviż li jekk il-karattru li aħna issa jridu 96 00:06:00,670 --> 00:06:04,690 inkrement kien il-terminatur null, allura aħna qed tmur biex tistabbilixxi li l- 97 00:06:04,690 --> 00:06:06,260 simbolu minimu. 98 00:06:06,260 --> 00:06:11,431 Allura jekk il-raden kien c, allura tagħna raden ġdida se tkun aa. 99 00:06:11,431 --> 00:06:16,050 U jekk raden oriġinali tagħna kienet cccc, allura raden ġdida tagħna 100 00:06:16,050 --> 00:06:18,380 se tkun aaaaa. 101 00:06:18,380 --> 00:06:24,430 >> Allura kull meta aħna jilħqu l-string massimu ta 'tul partikolari, allura aħna qed 102 00:06:24,430 --> 00:06:29,090 ser timplimenta l-sekwenza minimu tat-tul li jmiss, li se 103 00:06:29,090 --> 00:06:34,420 biss tkun karattri kollha ta ' is-simbolu minimu. 104 00:06:34,420 --> 00:06:36,970 Issa, dak li huwa dan il-kontroll tagħmel hawn? 105 00:06:36,970 --> 00:06:42,780 Ukoll, jekk indiċi mċaqlaq mill-tmien karattru għall-karattru disa - 106 00:06:42,780 --> 00:06:46,460 hekk aħna żid tmien c bħala preċedenti tagħna raden - 107 00:06:46,460 --> 00:06:51,270 allura indiċi huwa ser tiffoka fuq il- aħħar null terminatur tas raden tagħna 108 00:06:51,270 --> 00:06:57,990 array, li mhix maħsuba li attwalment jintużaw password tagħna. 109 00:06:57,990 --> 00:07:03,530 >> Allura jekk aħna huma ffokati fuq li l-aħħar null terminatur, allura aħna ma sabu 110 00:07:03,530 --> 00:07:07,750 password thats validu bl-użu biss tmienja karattri, li jfisser m'hemm l-ebda 111 00:07:07,750 --> 00:07:10,550 password valida li encrypts għall-sekwenza mogħtija. 112 00:07:10,550 --> 00:07:13,520 U aħna għandna biex jistampaw li, qal aħna ma setgħetx issib valida 113 00:07:13,520 --> 00:07:16,100 password, u r-ritorn. 114 00:07:16,100 --> 00:07:20,280 Allura dan loop filwaqt li se jtenni fuq kordi kollha possibbli. 115 00:07:20,280 --> 00:07:24,640 >> Jekk issib xi li encrypts l- string encrypted mistenni, dan ser 116 00:07:24,640 --> 00:07:26,190 ritorn li password. 117 00:07:26,190 --> 00:07:29,610 U ma jsibu xejn, allura huwa ser jerġa, l-istampar li 118 00:07:29,610 --> 00:07:31,910 ma kienx kapaċi li jsibu xejn. 119 00:07:31,910 --> 00:07:39,220 Issa, avviż li iterazzjoni fuq kollha kordi possibbli hija probabbilment se 120 00:07:39,220 --> 00:07:40,420 jieħu waqt. 121 00:07:40,420 --> 00:07:43,590 Ejja naraw kif fil-fatt twil li jieħu. 122 00:07:43,590 --> 00:07:47,230 >> Ejja jagħmlu xquq. 123 00:07:47,230 --> 00:07:51,050 Well, oops - jgħid undefined referenza għal kripta. 124 00:07:51,050 --> 00:07:55,330 Mela ftakar, għall-p settijiet spec u wkoll il-paġna bniedem għal kripta li aħna 125 00:07:55,330 --> 00:07:58,130 bżonn ir-rabta kripta. 126 00:07:58,130 --> 00:08:01,130 Issa, l-inadempjenza tagħmel kmand ma taf li inti 127 00:08:01,130 --> 00:08:03,010 tixtieq li tuża dik il-funzjoni. 128 00:08:03,010 --> 00:08:09,680 >> Mela ejja Kopja ta 'din il-kmand klijent u żid ftit fuq l-aħħar 129 00:08:09,680 --> 00:08:13,300 ta 'dan, jgħaqqdu crypt. 130 00:08:13,300 --> 00:08:14,820 Issa, hija tiġbor. 131 00:08:14,820 --> 00:08:23,880 Mela ejja jimxu xquq fuq mogħti string encrypted - 132 00:08:23,880 --> 00:08:25,130 hekk Caesar. 133 00:08:25,130 --> 00:08:28,690 134 00:08:28,690 --> 00:08:30,790 Allura li kien pretty fast. 135 00:08:30,790 --> 00:08:33,230 >> Avviż li din ntemm fit-13. 136 00:08:33,230 --> 00:08:38,240 Ukoll, password encrypted Caesar jiġri li jkun 13. 137 00:08:38,240 --> 00:08:41,650 Mela ejja jippruvaw password ieħor. 138 00:08:41,650 --> 00:08:45,830 Ejja tieħu encrypted Hirschhorn tal password u jippruvaw qsim dan. 139 00:08:45,830 --> 00:08:51,750 140 00:08:51,750 --> 00:08:55,110 >> Allura avviż konna diġà laħqu tliet karattri. 141 00:08:55,110 --> 00:08:58,660 U aħna qed iterazzjoni fuq kollha possibbli kordi tliet karattru. 142 00:08:58,660 --> 00:09:01,420 Dan ifisser li għandna stajt diġà finitura iterazzjoni fuq waħda kollha possibbli u 143 00:09:01,420 --> 00:09:04,660 żewġ Sekwenzi ta 'karattri. 144 00:09:04,660 --> 00:09:09,180 Issa, jidher qisu dan se tieħu filwaqt li qabel nilħqu l- 145 00:09:09,180 --> 00:09:10,580 kordi erba 'karattru. 146 00:09:10,580 --> 00:09:14,680 Huwa jista 'jieħu ftit minuti. 147 00:09:14,680 --> 00:09:16,055 >> Hija ma tieħu ftit minuti. 148 00:09:16,055 --> 00:09:18,450 Aħna fuq il-kordi ta 'erba' karattru. 149 00:09:18,450 --> 00:09:22,800 Imma issa, għandna bżonn li jtenni fuq kollha kordi erba 'karattru possibbli, li 150 00:09:22,800 --> 00:09:26,000 li jista 'jieħu forsi 10 minuti. 151 00:09:26,000 --> 00:09:28,720 U allura meta aħna jilħqu ħames karattru kordi, għandna bżonn li jtenni fuq kollha 152 00:09:28,720 --> 00:09:31,450 ta 'dawk, li jistgħu jieħu ftit sigħat. 153 00:09:31,450 --> 00:09:34,080 U għandna bżonn li jtenni fuq kollha possibbli sitt karattri kordi, li 154 00:09:34,080 --> 00:09:36,560 jista 'jieħu ftit jiem u l-bqija. 155 00:09:36,560 --> 00:09:41,380 >> Għalhekk tista 'tieħu potenzjalment twil ħafna żmien tirrepeti l fuq kollha possibbli 156 00:09:41,380 --> 00:09:44,850 tmien karattru u inqas kordi. 157 00:09:44,850 --> 00:09:50,600 Allura avviż li dan mhux neċessarjament algoritmu effiċjenti ħafna għall-konstatazzjoni 158 00:09:50,600 --> 00:09:51,860 password. 159 00:09:51,860 --> 00:09:54,540 Għandek mnejn taħseb li hemm modi aħjar. 160 00:09:54,540 --> 00:10:02,230 Per eżempju, il ZYX password! 32ab probabbilment mhix password komuni ħafna, 161 00:10:02,230 --> 00:10:06,440 billi l-password 12345 hija probabbilment ħafna aktar komuni. 162 00:10:06,440 --> 00:10:13,570 >> Allura mod wieħed ta 'tipprova ssib password aktar malajr huwa li tfittex biss 163 00:10:13,570 --> 00:10:15,560 fil passwords li huma aktar komuni. 164 00:10:15,560 --> 00:10:20,480 Hekk per eżempju, nistgħu nippruvaw biex taqra kliem minn dizzjunarju u jippruvaw kollha ta ' 165 00:10:20,480 --> 00:10:24,860 dawn il-kliem bħala guesses password tagħna. 166 00:10:24,860 --> 00:10:29,210 Issa, forsi password ma tkunx dik sempliċi. 167 00:10:29,210 --> 00:10:32,600 Forsi l-utent kien kemmxejn għaqlija u jippruvaw jpoġġu numru li 168 00:10:32,600 --> 00:10:34,220 l-aħħar ta 'kelma. 169 00:10:34,220 --> 00:10:37,000 >> Allura forsi password tagħhom kien password1. 170 00:10:37,000 --> 00:10:41,520 Allura inti tista 'tipprova iterazzjoni fuq kliem kollha fid-dizzjunarju ma 'wieħed 171 00:10:41,520 --> 00:10:43,210 mehmuż mat-tmiem ta 'dan. 172 00:10:43,210 --> 00:10:47,360 U allura forsi wara li tagħmel dan, inti ser tehmeż tnejn sa l-aħħar ta 'dan. 173 00:10:47,360 --> 00:10:50,240 >> Jew forsi l-utent qed tipprova tkun saħansitra aktar għaqlija, u huma jridu tagħhom 174 00:10:50,240 --> 00:10:54,980 password li tkun "Hacker," iżda dawn qed ser tissostitwixxi każijiet kollha ta 'e tal 175 00:10:54,980 --> 00:10:56,600 ma threes. 176 00:10:56,600 --> 00:10:58,440 Allura inti tista 'tagħmel dan ukoll. 177 00:10:58,440 --> 00:11:02,100 Jtenni fuq kollha kliem fid-dizzjunarju iżda tissostitwixxi karattri li 178 00:11:02,100 --> 00:11:04,790 look like numri ma 'dawk in-numri. 179 00:11:04,790 --> 00:11:09,670 >> Allura dan il-mod, inti tista 'qabda aktar passwords li huma pjuttost komuni. 180 00:11:09,670 --> 00:11:14,690 Iżda fl-aħħar, l-uniku mod inti tista ' jaqbdu passwords kollha huwa li brute 181 00:11:14,690 --> 00:11:17,340 seħħ jtenni fuq kollha kordi possibbli. 182 00:11:17,340 --> 00:11:22,100 Għalhekk fl-aħħar, għandek bżonn tagħmel biex jtenni fuq kordi kollha minn karattru wieħed għal 183 00:11:22,100 --> 00:11:28,110 tmien karattri, li jistgħu jieħdu żmien twil ħafna, iżda inti għandek bżonn tagħmel dan. 184 00:11:28,110 --> 00:11:30,024 >> Jisimni Rob Bowden. 185 00:11:30,024 --> 00:11:31,425 U dan huwa jixxaqqaq. 186 00:11:31,425 --> 00:11:36,533