Ö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


Jonny Karlsson 2010