Как определить, защищен ли файл 7zip паролем?

Наш проект использует JAVA, пользовательский интерфейс позволяет клиенту загружать файлы 7-zip с паролем или без него, требуется проверить, защищены ли файлы паролем или нет.

Как я могу это сделать?

Заранее спасибо.


person user18384    schedule 18.12.2014    source источник
comment
Я не знаю подробностей, но, вероятно, вы будете использовать библиотеку 7zip Java SDK. Затем попробуйте открыть без пароля, и если это не удается, возможно, он защищен паролем.   -  person PeterMmm    schedule 18.12.2014


Ответы (2)


Если вы используете sevenzipjbind, когда вы получаете ISevenZipInArchive, вы можете проверить, имеет ли он свойство ENCRYPTED

person Pablo Gallego Falcón    schedule 18.12.2014

С sevenzipjbind недостаточно только проверить свойство Archive. Вы должны проверить свойства каждого элемента в архиве.

boolean isEncrypted(IInArchive archive) throws SevenZipException {
    if (Boolean.TRUE.equals(archive.getArchiveProperty(PropID.ENCRYPTED))) return true;
    for (int i=0;i<archive.getNumberOfItems();i++) {
        if (Boolean.TRUE.equals(archive.getProperty(i,PropID.ENCRYPTED))) return true;
    }
    return false;
}
person Ivo Skalický    schedule 02.12.2020