package practiceThread;
import java.util.Random;
public class Practice3 {
private static String randomPassWd() {
int length = 3;
StringBuilder sb = new StringBuilder();
char[] randomPW = new char[length];
// a-z A-Z 0-9 对应的ASCII码
int[] template = new int[]{48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122};
Random random = new Random();
for(int i = 0; i<length; i++){
int randomNum = random.nextInt(template.length);
//System.out.println("randomNum:"+randomNum+" string:"+(char)template[randomNum-1]);
randomPW[i] = (char)template[randomNum];
sb.append(randomPW[i]);
}
return sb.toString();
}
public static void main(String[] args) {
String passwd = randomPassWd();
System.out.println(passwd);
new Thread(){
@Override
public void run() {
while(true){
String newPW = guessPW(passwd.length());
if(newPW.equals(passwd)){
System.out.println("found: "+newPW);
System.out.println("original: "+passwd);
break;
}
}
}
}.start();
}
private static void printLog(String newPW) {
Thread t = new Thread(){
@Override
public void run() {
System.out.println("守护进程,打印可能的密码: "+newPW);
}
};
t.setDaemon(true);
t.start();
}
private static String guessPW(int length) {
StringBuilder sb = new StringBuilder();
char[] randomPW = new char[length];
// a-z A-Z 0-9 对应的ASCII码
int[] template = new int[]{48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122};
Random random = new Random();
for(int i = 0; i<length; i++){
int randomNum = random.nextInt(template.length);
//System.out.println("randomNum:"+randomNum+" string:"+(char)template[randomNum-1]);
randomPW[i] = (char)template[randomNum];
sb.append(randomPW[i]);
}
printLog(sb.toString());
return sb.toString();
}
}