>> ROB BOWDEN: Ma olen Rob ja hakkame lõhenemist.
Nii mäletan pset spec et me ei kavatse olla kellel on vaja kasutada
crypt funktsiooni.
Sest mees leheküljel on kaks hash määratleda _xopensource.
Ära muretse, miks me peame seda tegema.
Ja ka hash hulka unistd.h.
>> Nii et kui see välja viis, lähme saada tegelik programm.
Esimene asi, mida me peame tegema, on veenduge, et kasutaja sisestatud kehtiv krüpteeritud
UUS käsurida.
Pea meeles, et programm peaks tuleb käivitada nagu dot kaldkriipsuga crack, ja
siis krüpteeritud string.
>> Nii et siin me kontrollida, et veenduda et argc kahele, kui tahame
jätkata programmi.
Kui argc ei ole kaks, mis tähendab kas kasutaja ei sisesta krüpteeritud
UUS käsurida või nad kantakse üle ainult krüpteeritud
UUS käsurida, kus puhul me ei tea, mida teha
käsurea argumente.
>> Nii et kui argc oli kaks, saame jätkata.
Ja siin me kuulutada muutuja krüpteeritud.
See on lihtsalt läheb alias originaal argv1 nii, et kogu selle
programm, me ei pea seda kutsuda argv1, mis siis sa pead mõtlema
kohta, mida see tegelikult tähendab.
>> Nii et lõpuks, me tahame, et kinnitada, et krüpteeritud parool kasutaja
sisestatud oleks tegelikult olnud krüpteeritud parool.
Per mees leheküljele krüpt, krüpteeritud parool peab olema 13
märki.
Siin üleval, märkate, et me hash määratletud krüptida pikkusega 13.
Nii et me lihtsalt tagada, et string pikkusega krüpteeritud
parool on 13.
>> Ja kui see ei ole, me tahame programmist väljumiseks.
Nii et kui see on välja Muide, saame nüüd tegelikult proovida leida seda, mida
parooli, mis andis krüpteeritud parool oli.
Siin tahame haarata soola alates krüpteeritud parool.
Pea meeles, et iga mees lehel, et Esimesed kaks märki krüpteeritud
string, meeldib siin -
50ZPJ ja nii edasi -
esimesed kaks tähemärki anda meile sool, mida kasutati
aastal krüpt funktsioon.
>> Ja siin me näeme, et sool oli ha.
Nii et me tahame, et kopeerida esimese kahe tegelased, soola pikkus on hash
määratletud kui kaks.
Meil on kopeerida esimesed kaks tähemärki sellesse massiiv, sool.
Pange tähele, et meil on vaja soola pikkus pluss üks, sest meil on vaja veel null
terminaator lõpus meie sool.
>> Siis me kuulutame selle massiivi külaline, suurus max pikkus pluss
üks, kus max pikkus on hash määratletud kui kaheksa, kuna maksimaalne salasõna
on kaheksa märki.
Ja me ei kavatse kasutada seda korrata kõikvõimalike stringe, mis võiks
kehtivad paroolid.
Nii et kui kehtiv tähemärki parool olid just a, b ja c, siis
oleksime Käi a, b, c, aa, ba, ca, ja nii edasi, kuni
saame näha cccccccc -
kaheksa c on.
>> Ja kui me ei ole alla kehtiva salasõna, siis peame ütlema, et
krüpteeritud string ei olnud kehtiv alustada.
Nüüd jõuame selle ajal 1 silmus.
Pange tähele, et tähendab, et see lõputu silmuse.
>> Teatis ei ole murda avaldus sees see lõputu silmuse.
Seal on ainult tagasi avaldustega.
Nii et me tegelikult ei oodata silmusest väljumiseks.
Meil on ainult oodata, et väljuda programmist.
Olen lisanud seda print avaldus Selle peale silmuse lihtsalt välja printida
mida meie praegune oletus Mis on parool.
>> Nüüd, mis on see loop teed?
See silmukoiminen kõikvõimalike stringe mis võib olla kehtiv paroole.
Esimene asi, mida me teeme, on võtta meie praegune oletusega, mida
parool.
Võtame sool et me haarasid krüpteeritud string, ja me oleme
kavatse krüpteerimiseks oletus.
See annab meile krüptitud oletus, mis me võrreldakse
krüpteeritud string, et kasutaja sisestatakse käsurealt.
>> Kui need on samad, mille puhul string võrreldav naaseb null, kui
nad sama, siis arvan, et oli parooli, mis loodud krüpteeritud
string, mille puhul saame trükkida et kui meie parool ja tagasi.
Aga kui nad ei ole sama, mis tähendab, et meie oletus on vale.
>> Ja me tahame kinnitada, et Järgmise kehtiv oletus.
Nii see on, mida see samas loop üritab teha.
See saab korrata meie oletus Järgmise kehtiv oletus.
Pange tähele, et kui me ütleme, et eelkõige märk meie oletus on
jõudnud max sümbol, mis siin on hash määratletud tilde, kuna
mis on suurim ASCII väärtus iseloomu et kasutaja saab sisestada aadressil
klaviatuur, kui iseloomu jõuab max sümbol, siis tahame saata
see tagasi minimaalse sümbol, mis on ruumi jälle madalaim ASCII
väärtuse sümbol, mida kasutaja saab sisesta klaviatuurilt.
>> Nii et me ei kavatse kehtestada, et minimaalse sümbol.
Ja siis me läheme järgmisele iseloomu.
Niisiis, kuidas on meie oletused kavatse korrata?
Noh, kui kehtiv tegelased on a, b, ja c, siis kui me alustasime,
see saab kinnitada, et b, siis see korrata, et c.
c on meie max sümbol, nii me seada c tagasi, minimaalne sümbol.
Ja siis korrata indeks järgmine sümbol.
>> Nii et kui algne oletus oli c, järgmisele iseloomu saab olema null
terminaator.
Siin all märgata, et kui märk et tahame nüüd
juurdekasv oli null terminaator siis me ei kavatse seada see
miinimum sümbol.
Nii et kui oletus oli c, siis meie uus oletus saab olema aa.
Ja kui meie algne oletus oli cccc, siis meie uus oletus
saab olema aaaaa.
>> Nii et kui me jõuame maksimaalne string teatava pikkusega, siis oleme
kavatse rakendada minimaalselt string järgmise pikkus, mis kestab
lihtsalt kõik tegelased miinimum sümbol.
Nüüd, mis on see kontroll siin teed?
Noh, kui indeks liikunud kaheksas märgi üheksa iseloomu -
nii me lisada kaheksa c on nagu meie eelmine arvan -
siis indeks läheb keskenduda viimane null terminaator meie oletus
massiiv, mis ei ole mõeldud tegelikult kasutada oma parool.
>> Nii et kui me oleme keskendunud, et viimane null terminaator siis me ei leidnud
parool, mis on kehtiv, kasutades ainult kaheksa märki, mis tähendab, et puudub
kehtiv parool, mis krüpteerib et antud stringi.
Ja meil on trükkida seda, öeldes: me ei suutnud leida kehtiv
parooli ja tagasi.
Nii et see, kui loop läheb itereerima kõikvõimalike stringe.
>> Kui ta leiab, et krüpteerib et oodata krüpteeritud string, siis see
tagasi, et parool.
Ja ta ei leia midagi, siis ta naaseb, trükkimine, et seda
ei suutnud leida midagi.
Nüüd teate, et iterating üle kõik võimalik stringid on ilmselt läheb
aega võtta.
Olgem tegelikult näha, kuidas kaua see aega võtab.
>> Teeme crack.
Noh, oops - ta ütleb undefined viide krüpt.
Seega pidage meeles, et p seab spec ja ka man-leheküljelt krüpt, et me
pead lingi krüpt.
Nüüd vaikimisi käsk make ei tea, et sa
soovite kasutada seda funktsiooni.
>> Teeme kopeeri see klient käsk ja lihtsalt lisada lõppu
see, mis ühendab krüpt.
Nüüd koostab.
Niisiis olgem joosta pragu antud krüpteeritud string -
nii Keisri.
Nii et oli päris kiire.
>> Pange tähele, et see lõppes 13.
Noh, Caesari krüpteeritud parool juhtub olema 13.
Seega proovime teise parooliga.
Võtame Hirschhorn on krüpteeritud parool ja proovige lõhenemist et.
>> Nii märkate oleme juba jõudnud kolm märki.
Ja me iterating üle kõik võimalik Kolme märgijadadena.
See tähendab, et me oleme juba lõpetada iterating kõikvõimalike üks ja
kaks märgijada.
Nüüd tundub, et see läheb võtab aega, enne kui jõuame
nelja-märgijadadena.
See võib võtta paar minutit.
>> Ta ei võta paar minutit.
Me oleme neli-märgijada.
Aga nüüd on meil vaja korrata üle kõik võimalik nelja-märgijada, mis
mis võib kesta ehk 10 minutit.
Ja siis, kui me jõuame viie iseloomu stringid, peame Käi kõik
Nende hulk, kes võivad võtta paar tundi.
Ja meil on vaja korrata üle kõik võimalik Kuue märgijada, mis
võib võtta paar päeva ja nii edasi.
>> Nii et see võiks olla väga pikk aeg korrata üle kõik võimalik
kaheksa-kohaline ja vähem stringe.
Nii teate, et see ei ole tingimata väga tõhus algoritm leidmiseks
UUS.
Võib arvata, et seal on paremaid viise.
Näiteks salasõna zyx! 32AB ilmselt ei ole väga levinud parool
arvestades salasõna 12345 ilmselt palju rohkem ühist.
>> Nii et üks viis, püüdes leida parool kiiremini on lihtsalt vaadata
kell paroole, mis on rohkem levinud.
Nii näiteks saame proovida lugeda sõnu alates sõnastik ja proovida kõik
need sõnad on meie salasõna oletused.
Nüüd äkki parool ei ole nii lihtne.
Võibolla kasutaja oli mõnevõrra tark ja proovige lisades numbri
sõna lõpus.
>> Ehk oma parool oli password1.
Nii saad proovida iterating üle kõik sõnad sõnastikus koos ühe
lisatud lõpuni.
Ja siis võib-olla pärast seda, et sul lisab kaks kuni lõpuni.
>> Või äkki kasutaja üritab olla isegi targem, ja nad tahavad, et nende
parool on "häkker", kuid nad kavatse asendada kõik juhtumid e on
koos kolmekesi.
Nii et sa võiksid seda teha ka.
Käi kõik sõnad sõnastikust aga asendada märkide
nägema numbrid need numbrid.
>> Nii et see tee, siis võib jõuda isegi rohkem paroole, mis on üsna tavaline.
Aga lõppude lõpuks, ainult nii saab lüüa kõik paroolid on loomalik
sundida Käi kõik võimalik stringe.
Nii et lõpuks, sa ei pea korrata üle kogu strings ühe märgi
kaheksa tähemärki, mis võib võtta väga pikka aega, aga sa pead seda tegema.
>> Minu nimi on Rob Bowden.
Ja see on crack.