Search
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:
Test, Thief a BruteForceAttacker
BruteForceAttacker
public void breakPassword(int sizeOfPassword)
sizeOfPassword
char[] getCharacters()
boolean tryOpen(char[] password)
true
false
void breakPassword(int sizeOfPassword)
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.
Test.java
abcdaaaddb
{'a', 'b', 'c', 'd'}
BruteForceAttacker.java