Понимание различных форматов сжатия, шифрования и архивирования

В компьютерных терминах архив — это один файл, который хранит в себе различные файлы и папки. Существует несколько форматов архивов, и каждый из них имеет свои плюсы и минусы. Некоторые форматы архивов поддерживают сжатие (что делает размер вашего файла меньше), в то время как другие поддерживают шифрование. Да, и вы угадали, некоторые форматы архивов поддерживают оба — и сжатие, и шифрование. Давайте подробнее рассмотрим алгоритмы сжатия и шифрования, используемые в различных форматах архивов.

Алгоритм сжатия

Алгоритм сжатия — это метод, используемый архивом для сжатия файлов и уменьшения общего размера файла.

формат и алгоритм сжатия

1. LZMA/LZMA2

Алгоритм цепочки Лемпеля-Зива-Маркова (LZMA) — это алгоритм сжатия данных без потерь. LZMA использует алгоритм сжатия на основе словаря, который использует сложные структуры данных для кодирования одного бита за раз.

LZMA2 — это контейнер, который содержит как несжатые, так и сжатые данные LZMA. Он поддерживает многопоточную компрессию и декомпрессию данных. Он также может сжимать данные, которые не поддаются сжатию другими алгоритмами сжатия.

2. Алгоритм преобразования Бурроуза-Уилера (BWT)

BWT работает, переставляя строку текста в порядке, а затем сжимая их, заменяя повторяющиеся символы на символы.

3. PPM

Предсказание по частичному совпадению (PPM) — это статистический метод сжатия данных, который работает, используя набор предыдущих символов в несжатом потоке символов для предсказания следующего символа в потоке.

4. Deflate

Deflate — это популярный алгоритм сжатия данных, который использует комбинацию алгоритмов LZ77 и Хаффмана для сжатия данных (объединяя алгоритмы LZMA и PPM для достижения большего сжатия). Поскольку Deflate не содержит реализаций, ограниченных патентами, он стал очень популярным и широко используется, особенно в Linux.

Алгоритм шифрования

Теперь давайте рассмотрим некоторые популярные методы шифрования:

формат-алгоритм-шифрования

1. DES

Стандарт шифрования данных использует закрытые секретные ключи для шифрования и расшифровки данных. Секретный ключ выбирается случайным образом из адресного пространства от 56 до 64 бит.

2. AES

Стандарт расширенного шифрования — это алгоритм шифрования, используемый американскими агентствами для защиты конфиденциальных данных. Вы можете шифровать данные с использованием 128, 192 и 256 бит шифрования. AES использует симметричный ключевой алгоритм, что означает, что общий ключ используется для шифрования, а затем для расшифровки данных.

3. Blowfish

Алгоритм шифрования Blowfish шифрует архивы с размером блока 64 бита и переменной длиной ключа от 32 до 448 бит.

Примечание: Существует несколько других алгоритмов шифрования, но вышеупомянутые три являются наиболее часто используемыми.

Форматы архивов

Существует множество доступных форматов архивов. Ниже мы оценим каждый формат архива по трем параметрам — поддерживает ли он сжатие и шифрование, какая операционная система и программное обеспечение доступны для его использования.

1. Tar

Tape Archive (Tar) — один из старейших форматов архивов. Изначально он использовался для объединения и записи данных на последовательные магнитные ленты, но позже был стандартизирован как формат сжатия. Tar в основном используется в Linux и не поддерживает сжатие или шифрование. Вы также можете использовать его на Windows с установкой дополнительного программного обеспечения. Большинство современных утилит архивирования поддерживают этот формат. Исключениями являются Disk Archiver и KGB Archiver.

2. GZ

GZ или GZip — один из самых популярных форматов сжатия, используемых как в Windows, так и в Linux. GZip использует алгоритм сжатия Deflate для сжатия архивированных файлов. GZip также поддерживает многокомпонентные передачи файлов, что означает, что вы можете создавать меньшие части большого файла GZip для удобного обмена и передачи. Поскольку GZip довольно популярен, большинство современных утилит архивирования поддерживают сжатие и распаковку файлов с использованием формата GZip, включая 7-Zip, BetterZip, PKZip, WinZip и WinRAR.

3. BZ/BZ2

BZ очень похож на GZ, но использует алгоритм преобразования Бурроуза-Уилера, что приводит к немного большему сжатию и меньшему размеру файла. Хотя сжатие происходит медленно, декомпрессия довольно быстрая. Большинство программ, которые поддерживают GZ, также поддерживают BZ.

4. Zip

compression_winzip

Zip, вероятно, является самым известным и используемым форматом архивирования. Zip использует алгоритм Deflate и поддерживает сжатие без потерь. Он также поддерживает шифрование AES и DES. Большинство современных операционных систем имеют встроенную поддержку формата Zip, поэтому вам не нужно отдельное программное обеспечение для архивирования и распаковки Zip-файлов.

5. 7Z

compression_7zip

Формат архивирования 7Z был представлен с бесплатной и открытой утилитой под названием 7-Zip. Это самый продвинутый общий формат сжатия и архивирования, который поддерживает большинство алгоритмов сжатия и шифрования данных, включая обсуждаемые выше. Формат 7Z сжимает файлы больше, чем любой другой формат, но относительно медленнее в обработке. Другим ограничением является то, что программное обеспечение 7-Zip доступно только для Windows. Нет визуальной поддержки для Mac или Linux. 7Z также поддерживает многокомпонентное архивирование.

6. RAR

compression_winrar

RAR — это проприетарный формат архивирования. Хотя его можно читать и извлекать с помощью других утилит, таких как 7-Zip и WinZip, он может быть создан только с помощью утилиты WinRAR. RAR был самым популярным форматом для многокомпонентного архивирования до выхода 7Z. Теперь 7Z может выполнять ту же задачу бесплатно, в то время как RAR заставляет своих пользователей платить за программное обеспечение WinRAR. RAR поддерживает шифрование AES.

Другие форматы сжатия и архивирования

Вот некоторые из относительно менее известных форматов:

XZ — это формат сжатия данных без потерь, который использует алгоритм сжатия LZMA2. Его можно рассматривать как упрощенную версию 7Z.

LHA, ранее известный как LHarc, в основном используется для сжатия установочных файлов и игр (в основном используется в Японии). Интересно, что японская версия Windows 7 поставляется с встроенной поддержкой архивов LHA.

ACE — это проприетарный формат архивного файла сжатия данных, который был конкурентом формата RAR в начале 2000-х.

StuffIt изначально был выпущен для Mac, но позже были выпущены версии для Windows, Linux и Solaris. Это проприетарный формат сжатия, используемый утилитами StuffIt.

Заключение

В Linux наиболее часто используемым форматом является gz (или tar.gz), за которым следует bz, в то время как в Windows или Mac наиболее часто используемым форматом является Zip. Для кроссплатформенной совместимости стоит выбирать формат Zip. Если вам нужны такие функции, как безопасность, высокое сжатие и многокомпонентное архивирование, выбирайте формат 7Z. RAR похож на 7Z, за исключением того, что он имеет цену. Избегайте его, насколько это возможно.

Какой формат файла и утилиту вы используете для сжатия?