gpt4 book ai didi

Java 暴力破解密码

转载 作者:行者123 更新时间:2023-12-02 09:18:00 30 4
gpt4 key购买 nike

我正在制作一个暴力密码破解程序。我可以使用 for 循环来查找哪些字符与原始密码匹配。但输出的顺序不正确。输出按字母顺序排列。我该如何解决?输出应该类似于“

z
ze
zeb
zebr
zebra

代码:

        public static void main(String[] args) {
String password = "zebra";
char [] passArr = new char [password.length()];
passArr = password.toCharArray();

String brutePass = "";
char[] alphabet = new char[] { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p','q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' };
boolean solved = false;

while (solved != true) {
for (int i = 0; i < alphabet.length; i++) {
for (int j = 0; j < passArr.length; j++) {
if (alphabet[i] == passArr[j]) {
//brutePass +=passArr[j];
//System.out.println(brutePass);

StringBuilder forcedPass = new StringBuilder(brutePass);
forcedPass.insert(passArr[j], alphabet[i]);
System.out.println(forcedPass.toString());
solved = true;
}
}
}
}
}

}

最佳答案

根据您所需的输出,您的代码应如下所示:

public static void main(String[] args) {
String password = "zebra";
char [] passArr = password.toCharArray();

String brutePass = "";
char[] alphabet = new char[] { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p','q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' };
boolean solved = false;
StringBuilder forcedPass = new StringBuilder(brutePass); // Initialize StringBuilder outside.
while (solved != true) {
for (int j = 0; j < passArr.length; j++) { //Moved for loop outside.
for (int i = 0; i < alphabet.length; i++) {

if (alphabet[i] == passArr[j]) {
forcedPass.append(passArr[j]); // Used append instead of insert
System.out.println(forcedPass.toString());
solved = true;
}
}
}
}
}

在这里,我做了两处更改,我交换了内部和外部循环的位置,并且您使用了 StringBuilder 类的 insert() 方法,这是不正确的。您必须使用它的 append() 方法。要了解有关 StringBuilder 方法的更多信息,请访问 this .

关于Java 暴力破解密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58869350/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com