我正在使用文档贫乏的Zip4j库for来创建一个程序,该程序可以对锁定的zip文件运行字典攻击。当我运行我的程序时,它会从字典文件中提取值,并在zip中运行,以查看它们是否有效。如果是这样的话,文件就会被解压缩。最让我恼火的是,即使他正确地提取了密码,它也会继续运行密码。我想在成功开采之后停下来。我该怎么做呢?我如何创建一个触发器,当文件从zip中被拉出时,程序就停止了解压?下面是我使用的循环:
if(zipper.isEncrypted()){
while(passwordCounter != passwordArray.size()){
zipper.setPassword((String) passwordArray.get(passwordCounter));
System.out.println("Testing password no." + passwordCounter + ", which is " + passwordArray.get(passwordCounter));
passwordCounter = passwordCounter + 1;
try {
zipper.extractAll(dest);
} catch(ZipException ze) {
continue;
}
}
} else
zipper.extractAll(dest);压缩中包含的文件并不总是与zip命名相同,因此您无法检查是否存在与zip相同的文件夹。另外,如果用户希望压缩到他们的桌面,您不能说,如果大小不是0,那么它已经被提取。文件很可能在他们的桌面上。
发布于 2014-11-24 04:58:34
将break;放在zipper.extractAll(dest);语句下,但放在try-catch中
try {
zipper.extractAll(dest);
break;
} catch(ZipException ze) {
continue;
}这将导致代码脱离当前循环。
https://stackoverflow.com/questions/27098113
复制相似问题