package string;
import java.util.Arrays;
public class TestString {
//递归法破解密码
public static boolean found = false;
public static void main(String[] args) {
String s = random(3);
print("需要找出的:"+s);
char[] cs = new char[s.length()];
generatePassword(cs,s);
}
public static void generatePassword(char[] guessPassword,String password){
generatePassword(guessPassword,0,password);
}
public static void generatePassword(char[] guessPassword,int index,String password){
if(found){
return;
}
for(short i='0';i<'z';i++){
if(!Character.isLetterOrDigit(i)){
continue;
}
guessPassword[index] = (char)i;
if(index!=guessPassword.length-1){
generatePassword(guessPassword,index+1,password);
}
else
{
String s = new String(guessPassword);
if(s.equals(password)){
print("找到了:"+s);
found =true;
return;
}
}
}
}
private static void print(Object o){
System.out.println(o);
}
private static String random(int length){
char[] cs = new char[length];
short start = '0';
short end = 'z';
for(int i=0;i<cs.length;i++){
while(true){
char c = (char)(Math.random()*(end-start)+start);
if(Character.isDigit(c)||Character.isLetter(c)){
cs[i] = c;
break;
}
}
}
return new String(cs);
}
}
java基础——递归法破解密码
最新推荐文章于 2021-08-06 16:45:36 发布