I’m studying about parallel programming and testing this brute force code, to crack a password with 7 positions without and with parallelism, but when applying parallel programming, the code is running slower than before. Does anyone know why? How can I use parallel programming in this code to make it faster? thanks.
“`
public class Worker extends Thread{
private static final int[] valuesCaracter = {48, 48, 48, 48, 48, 48, 48};
private static final int arraySize = valuesCaracter.length;
private static char[] symbols = new char[arraySize];
private static String password = null;
@Override
public void run() {
generatePasswordCaracters();
}
public static int ajustaValor(int valueASCII) {
return switch (valueASCII) {
case 58 -> 65;
case 91 -> 97;
default -> valueASCII;
};
}
public static String generatePasswordCaracters() {
for (int i = 0; i < arraySize; i++) {
while (valuesCaracter[i] <= 122) {
for (int j = 0; j < symbols.length; j++) {
symbols[j] = (char) valuesCaracter[j];
}
password = new String(symbols);
System.out.println(password);
valuesCaracter[6]++;
for(int k = arraySize – 1; k >= 1; k–) {
if (valuesCaracter[k] > 122) {
valuesCaracter[k – 1]++;
valuesCaracter[k] = 48;
} else {
valuesCaracter[k] = ajustaValor(valuesCaracter[k]);
}
}
}
}
return password;
}
}
import net.lingala.zip4j.ZipFile;
import net.lingala.zip4j.model.FileHeader;
import java.io.File;
import java.util.List;
public class App {
public static void main(String[] args) {
Worker[] Workers =
{new Worker(),
new Worker(),
new Worker(),
new Worker(),
new Worker(),
new Worker()};
for (Worker workerStart : Workers) {
workerStart.start();
}
try {
for (Worker workerJoin : Workers) {
workerJoin.join();
}
}catch (InterruptedException e) {
System.out.println(e.getMessage());
}
try {
ZipFile zipFile = new ZipFile(new File(“C:\vsCodeProjects-Java\BruteForce\src\file.zip”));
if (zipFile.isEncrypted()) {
zipFile.setPassword(Worker.generatePasswordCaracters().toCharArray());
}
List<FileHeader> fileHeaderList = zipFile.getFileHeaders();
for (FileHeader o : fileHeaderList) {
zipFile.extractFile(o, “C:\vsCodeProjects-Java\BruteForce\src”);
System.out.println(“This is the password”);
}
} catch (Exception e) {
System.out.println(“Wrong password”);
}
}
}