我在做一个可以破解SHA1代码的暴力破解程序。我是一个使用线程的新手,我想用它们来通过并行运行来加速应用程序。有没有人能帮我,让jframe停止冻结。线程工作并产生正确的答案,但再也不允许我使用jframe了。
用于线程的代码:
public class crack1 extends Thread {
char[] pass1 = new char[1];
public boolean crack11() {
// while(!exit){
for (int i = 0; i < length; i++) {
pass1[0] = alpha1[i];
if (compareit(input, pass1) == true) {
System.out.println(String.valueOf("password =" + pass1[0]));
return true;
}
}
return false;
}
private boolean cracker(String input) {
crack1 obj1 = new crack1();
crack2 obj2 = new crack2();
crack3 obj3 = new crack3();
crack4 obj4 = new crack4();
crack5 obj5 = new crack5();
crack6 obj6 = new crack6();
if (obj1.crack11() == true) {
jTextArea1.append("password found");
System.out.println("password found");
}
// obj2.run();
// obj3.run();
// obj4.run();
// obj5.run();
// obj6.run();
System.out.println("done");
}
public static boolean compareit(String input, char[] test) {
System.out.println(String.valueOf(test));
String answer = String.valueOf(test);
String check = sha1(String.valueOf(test));
if (input.equals(check)) {
// jTextArea1.append("password ="+answer);
// System.out.println(String.valueOf("password ="+answer));
return true;
} else {
return false;
}
}
}发布于 2020-12-01 03:03:03
//obj2.run();这不是你使用线程的方式。直接调用run()方法只会导致代码在当前的Thread上执行。
要让代码在单独的线程上执行,您需要使用:
obj2.start();https://stackoverflow.com/questions/65078151
复制相似问题