Сжатие зашифрованных файлов
Существует ли какой-либо инсталлятор, такой как InstallShield, Wise или любой другой, который позволяет мне выполнять сжатие (любой формат) зашифрованного файла, если я дам ему фразу-пароль, которую я использовал при шифровании файла?
По сути, у меня есть несколько файлов, которые уже зашифрованы (и они должны быть зашифрованы), которые необходимо сжать перед развертыванием, чтобы пакет установщика был меньше, поэтому, возможно, есть утилита или установщик, который позволяет мне сжимать файл cab или что-то, если я предоставлю кодовую фразу?
Я прочитал другую тему, но она не ответила на вопрос, который мне был нужен.
Спасибо всем замечательным людям, которые здесь пытаются помочь.
возможно, мне следует подробнее остановиться здесь...
У моего программного обеспечения есть средство просмотра офисных документов. Его встроенный в офис. Мое программное обеспечение поставляется с действительно хорошими шаблонами Word, которые я хочу защитить от "копиров", чтобы не допустить страдания законных людей, программа / программа просмотра отображает эскизы для пользователя, когда законный пользователь пытается открыть службу tempalte, мой запущенный " "расшифровывает файл и открывает его без проблем.
теперь все предоставленные мной шаблоны Word Doc зашифрованы. Они по-прежнему показывают формат файла.doc, например Template001.doc. Вы не можете открыть это без средства просмотра. если у вас есть зритель, то у вас есть доступ ко всем tempaltes.
из-за отсутствия сжатия, примененного к моим файлам документов, мой установщик занимает 500 МБ. Если они не зашифрованы, то установка с использованием LZMA составляет 10 МБ, и вы увидите огромную разницу.
поэтому мне нужно сохранить каждый файл документа в зашифрованном виде (и оставить его как то же самое расширение файла), и чтобы установщик сжал файлы с помощью LZMA.
Есть идеи сейчас?
спасибо ОК
8 ответов
К сожалению, нет. Зашифрованные файлы выглядят как случайный шум, и нет способа сжать случайные данные.
В зависимости от программного обеспечения для шифрования, которое вы используете, может быть опция для сжатия, а также для шифрования. Какой инструмент шифрования вы используете?
Как сказал Зак, вы не можете сжимать зашифрованные данные (вы можете получить 1 или 2% сжатия, если вам повезет).
Правильный способ справиться с этим - расшифровать данные, сжать их, а затем повторно зашифровать этот сжатый архив.
Как уже упоминалось, зашифрованные файлы плохо сжимаются (если вообще).
Один из вариантов, который вы можете попробовать, - это расшифровать файлы, затем использовать приложение для архивирования, такое как 7-Zip или WinRAR, чтобы сжать их, и использовать встроенную функцию шифрования инструмента. Фактически, современные версии таких утилит позволяют не только шифровать файлы, но даже имена файлов, так что архив действительно непрозрачен без ключевой фразы.
Эти утилиты также имеют возможность создавать самораспаковывающиеся архивы, обычно с различными уровнями функциональности (например, создание ярлыков, запуск сценариев и т. Д.), Что позволяет вам создавать сжатый и зашифрованный установщик.
Почему бы просто не зашифровать сжатые файлы? Это должно работать.
Серьезно, если ваш алгоритм шифрования является надежным, вы вообще не сможете его сжать, потому что не должно быть повторяющихся битов или явно не случайных вещей. Если вы получите хотя бы 1%, то это означает, что ваш криптоалгоритм ненадежен и может быть подвергнут крипто-анализу.
Вам необходимо применить сжатие ДО шифрования.
"мой работающий" сервис "расшифровывает файл"
Если все шифрование выполняется вашей программой или "службой", вам просто нужно применить сжатие перед фактическим кодированием. Это обычная техника, и она тоже повысит безопасность.
Самым простым является сжатие с использованием zlib.
Если вы используете какой-либо сервис шифрования от других людей / компании, пожалуйста, сообщите нам название этой услуги.
Я думаю, что ваши требования, если я правильно их понимаю:
- файлы должны * всегда * быть зашифрованы при хранении на диске?
- файлы в вашем установочном пакете тоже должны быть зашифрованы?
- файлы в вашем установочном пакете должны быть сжаты?
Возможно, один из способов сделать это может быть:
- создать зашифрованный том, например, используя truecrypt, или cryptfs, или зашифрованную файловую систему Microsoft
- расшифровать зашифрованные файлы в папку на этом томе
- запустить упаковщик для файлов в этой папке, сжимая их, а затем повторно шифруя их на лету
Вариант этого, если ваше упаковочное решение само не поддерживает шифрование и т. Д., Может заключаться в следующем:
- расшифруйте зашифрованные файлы в папку на зашифрованном томе, как и в предыдущем возможном решении
- сжать их внутри зашифрованного тома, например, используя winzip или аналогичный, в один архивный файл
- создайте новый зашифрованный том, например, используя truecrypt, достаточно большой для хранения сжатого архивного файла
- скопируйте файл архива на новый том и размонтируйте его
Теперь у вас есть зашифрованный сжатый том, содержащий нужные вам файлы. Следующий шаг, чтобы создать установочный пакет:
- добавить truecrypt или похожий на ваш пакет
- добавьте зашифрованный сжатый том в ваш пакет
- добавьте сценарий в ваш пакет, например, в.msi добавьте собственный сценарий, который будет монтировать зашифрованный том с помощью truecrypt, а затем устанавливать файлы с этого тома, выполняя любое повторное шифрование на лету в зависимости от ситуации.
Почему бы не сделать base64'd для зашифрованных данных, а затем сжать их? Звучит глупо, но, по крайней мере, у вас будет много букв и цифр, которые, в свою очередь, могут быть сжаты. Это моя теория, не пробовал так.
Надеюсь, это поможет, С наилучшими пожеланиями, Том.