某天突发奇想如何通过Java代码破解六位数的密码:
顺便讲讲Java中的break、continue两个语句的使用:
break
语句用于跳出当前循环,不再执行循环中的后续语句,而是直接执行循环外的语句。它可以用于结束循环的执行,通常是在满足某个条件时跳出循环。
continue
语句用于跳过本次循环的剩余语句,直接进入下一次循环的执行。它可以用于在循环体中满足某个条件时跳过本次循环的执行,而直接进入下一次循环。
class PasswordCracker {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入六位数密码:");
String key = scanner.nextLine();
while (key.length() != 6) {
System.out.println("密码不合法,请重新输入!");
System.out.print("请输入六位的密码:");
key = scanner.nextLine();
}
char[] keyArray = key.toCharArray();
System.out.println("设置的密码为:" + key);
char[] result = new char[6];
char[] myStr = new char[10]; // 0123456789
for (int i = 0; i < 10; i++) {
myStr[i] = (char) (i + '0');
}
/**
* 1.根据fot循环一个一个破解密码 例如:首次循环000000,第二次循环000001,依次类推到999999.
*/
for (char c1 : myStr) {
result[0] = c1;
for (char c2 : myStr) {
result[1] = c2;
for (char c3 : myStr) {
result[2] = c3;
for (char c4 : myStr) {
result[3] = c4;
for (char c5 : myStr) {
result[4] = c5;
for (char c6 : myStr) {
result[5] = c6;
if (new String(result).equals(key)) { // 如果result的值等于key的值,那么就破解成功;
System.out.println("破解成功!密码为:" + new String(result));
break;
} else {
// System.out.println("失败 " + new String(result));
}
}
}
}
}
}
}
}
}