|
Övning6
-
Parallellisering
av brute force algoritm
Följande klass definierar en algoritm som
crackar lösenord med brute force metoden (dvs testar alla
kombinationer börjande från 1-tecken, går vidare till
2-tecken osv.). Algoritmen tar i beaktande att ett lösenord kan
innehålla aASCII-tecknen 33-126.
Gör ett enkelt program där du definierar en teckensträng
som "simulerar" ett riktigt password. Anropa sedan metoden crack() i BrutForce-klassen med olika
långa lösenord och se hur länge det tar att cracka.
Gör sedan en parallell version av BruteForce-klassen som delar
upp crackningen dynamiskt i så många parallellt exekverande
trådar som
det finns tillgängliga processorer/processorkärnor på
den dator programmet körs. Gör all parallellisering i BruteForce-klassen så att en
användare av klassen inte skall behöva ta ställning till
parallelliseringen.
När din parallella version fungerar, testa igen med olika
långa
lösenord och jämför med den seriella versionen hur
länge det tar att cracka!
Ladda upp din
lösning, innehållande alla källkods- och projektfiler, på BLS senast fredag 19.11
|
|
|
|