Lab04 - Lámání hesel

Povedl se Vám nečekaně cenný úlovek - získali jste do rukou zadání testů z PJV. Bohužel, tyto testy jsou uzavřeny v sejfu s elektronickým zámkem. K tomuto zámku dokážete připojit svůj počítač, pomocí kterého můžete zkoušet různá hesla. Jednou z metod prolamování hesel je intuitivní tzv. brute force attack, tedy útok hrubou silou. Při této metodě útočník zkouší postupně všechny možné kombinace znaků, dokud neuhodne heslo.

Domácí úkol sestává ze tříd Test, Thief a BruteForceAttacker. Vy budete pracovat pouze se třídou BruteForceAttacker. Zde doplňte kód do metody public void breakPassword(int sizeOfPassword), který se pokusí prolomit heslo o délce sizeOfPassword (heslo je dlouhé přesně zadaný počet znaků, tedy ani kratší ani delší). K dispozici máte následující metody:

Téma cvičení - rekurze - vám napovídá, že tento úkol je povinné řešit pomocí rekurze ;-). Nicméně, je dost možné, že metoda void breakPassword(int sizeOfPassword) nebude rekurzivní a bude volat jinou metodu, která již rekurzivní bude.

Váš algoritmus si můžete otestovat. Viz kód ve třídě Test.java. V tomto kódu se sejf nastaví na heslo abcdaaaddb a množina znaků na {'a', 'b', 'c', 'd'}. Podle tohoto vzoru si můžete vyzkoušet i jiná hesla.

Do Upload Systemu nahrávejte soubor BruteForceAttacker.java (zabalený v archivu), který obsahuje vaše řešení.