我正在使用记录不佳的 Zip4j Java 库来创建一个对锁定的 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);
PS zip 中包含的文件并不总是与 zip 名称相同,因此您无法检查是否存在与 zip 名称相同的文件夹。此外,如果用户希望 zip 转到他们的桌面,例如,您不能说如果大小不为 0,那么它已被提取。文件很可能在他们的桌面上。