我正在制作一个简单的破解应用程序。部分应用程序通过dictionary.txt运行并尝试其中的单词。如果返回一个简单的字典单词,它将返回1。 (出于作业的目的,我们并不担心大写字母。)这是它通过字典攻击的片段:
for(String s : rf.openFile()){
System.out.println("Testing: " + s)
if(password.equalsIgnoreCase(s)){
return 1;
}
}
rf.openFile()是一个包含加载txt后字典的String []。
现在,我想知道这一点:很明显,println()会向控制台输出一条bajillion线。我不知道如何说出来(这是许多应用程序在检查文件系统时所做的事情),但我想把它改为“测试:[word]”这一行改为“保持”测试:“静态,因为它遍历字符串。我将如何实现这一目标?
答案 0 :(得分:1)
您无法通过控制台执行此操作。好吧,不是没有使用charva,它是java的ncurses包装器。您无法使用java控制控制台本身。你只能写它并从中读取。你想要完成的是基本上把这个词写到控制台,清理控制台,然后写下一个单词。
我想你可以在文本后面向控制台写入X个空行,给它你想要的外观,但向上滚动会显示很多空行。
我说最简单的方法就是拥有一个带有JLabel的简单JFrame:
public static void main(final String[] args) {
final JFrame frame = new JFrame("Test");
final JLabel label = new JLabel();
frame.add(label);
frame.setSize(100, 30);
frame.setVisible(true);
checkDictionary(label);
}
public static int checkDictionary(final JLabel label) {
for (final String s : rf.openFile()) {
label.setText("Testing: [" + s + "]");
if (password.equalsIgnoreCase(s)) {
return 1;
}
}
return -1;
}