#c #c #zip #zlib #unzip
#c #c #zip #zlib #распаковать
Вопрос:
Я использую Minizip для работы с некоторыми zip-файлами и хотел бы иметь возможность проверять, содержит ли zip-файл зашифрованные / защищенные паролем файлы. Если я вызову unzGetCurrentFileInfo и посмотрю на результирующую структуру unz_file_info, я заметил, что поле external_fa похоже на 0 для незашифрованных файлов и 0x20 для зашифрованных.
Однако это именно то, что я наблюдал при отладке, и поскольку я не могу найти в коде Minizip ничего, что документировало бы, что на самом деле означают разные значения в этом поле, я опасаюсь делать предположения.
Кто-нибудь знает больше?
Комментарии:
1.
external_fa
должно быть не связано, но должно быть установлено значение флага общего назначения 32.2. вы используете c или c ? Также вы говорите, что используете Minzip, но с тегом zlib, что это такое?
3. Смотрите Спецификацию формата ZIP-файла . Шифрование было добавлено в версии 5.2 (но оно было ошибочным). Файл в архиве зашифрован, если присутствует «заголовок шифрования» . Заголовок шифрования ДОЛЖЕН быть размещен после «локального заголовка» .
4. Бит флага общего назначения 0 установлен для зашифрованных файлов. Оба бита 6 и 0 устанавливаются, если используется «надежное шифрование».
5. Minizip недоступен в качестве тега в SO, но поскольку он построен поверх zlib, я пометил его. Я работаю на C , но поскольку minizip и zlib являются C, я пометил оба.