Что такое формат файла LZH?
Файлы LZH содержат архивы файлов, сжатые с использованием LZSS (вариант алгоритма Лемпеля - Зива) в сочетании с кодированием Хаффмана. Формат был разработан Харуясу Ёсидзаки в 1988 году под названием LHarc. Этот метод сжатия позволяет эффективно экономить дисковое пространство, и формат стал чрезвычайно популярным в Японии и среди пользователей Amiga на протяжении 1990-х годов. Японская версия Windows 7 включала встроенный инструмент для управления файлами LZH, а в Windows XP он предлагался как дополнительная функция.
Один архив LZH может содержать:
- файлы любого формата, включая исполняемые файлы,
- структуры папок,
- автономные программы вместе с конфигурационными файлами.
Расширения .lha и .lzh взаимозаменяемы - они относятся к одному и тому же формату и семейству инструментов (LHarc → LHA). Архивы LZH могут использовать различные методы сжатия, определяемые в заголовке каждого файла тегом метода, таким как -lh0- (без сжатия), -lh5-, -lh6- или -lh7-. Метод -lh5- был наиболее широко используемым и до сих пор лучше всего поддерживается современными распаковщиками.
LZH когда-то был доминирующим архивным форматом для распространения японского ПО и на BBS-сцене Amiga. Сейчас он считается устаревшим, его вытеснили ZIP, 7z и RAR для архивации общего назначения. Собственное шифрование не поддерживается; контрольная сумма CRC-16 в заголовке каждого файла позволяет проверить целостность при извлечении.
Безопасность и защита
РИСК: MEDIUMАрхивы LZH не имеют встроенного шифрования и могут содержать любые данные, поэтому относитесь к подозрительным .lzh как к любым неизвестным архивам - сканируйте их перед извлечением и не запускайте неизвестные исполняемые файлы из старых загрузок. Специфическая историческая проблема: широко используемая в Windows библиотека UNLHA32.DLL имела уязвимости в безопасности, что побудило японское агентство IPA рекомендовать отказаться от использования LZH. Используйте современные распаковщики (7-Zip, PeaZip, lhasa), а не старые инструменты LHA.
Детали формата
в двух словахПрограммы, открывающие файлы LZH
Технические подробности
глубокая спецификация| Алгоритм сжатия | LZSS (вариант Лемпеля - Зива на основе словаря) в сочетании со статическим или адаптивным кодированием Хаффмана |
| Методы сжатия | -lh0- (без сжатия), -lh1-, -lh4-, -lh5-, -lh6-, -lh7-; тег метода хранится в индивидуальном заголовке каждого файла |
| Сигнатура файла | Байты тега метода со смещением 2 (например, -lh или -lz); байты 0-1 - это размер заголовка и контрольная сумма, поэтому сигнатура находится не в начале (смещение 0) |
| Кодировка | Бинарная (Binary), little-endian |
| Структура заголовка файла | Содержит тег метода, исходный и сжатый размер, контрольную сумму CRC-16, метку времени изменения и имя файла |
| Уровни заголовков | Уровни 0, 1 и 2 (а также 3) - определяют макет полей заголовка и максимальную длину имени файла |
| Целостность | CRC-16 для каждого заархивированного файла хранится в его заголовке; большинство инструментов извлечения проверяют контрольную сумму при декомпрессии |
| Шифрование | Отсутствует - LZH не имеет встроенного шифрования; архивы нельзя защитить паролем |
| MIME-тип | application/x-lzh-compressed |
| Взаимозаменяемые расширения | .lzh и .lha относятся к одному и тому же формату и семейству инструментов; оба расширения широко используются |
| Типичный размер архива | От нескольких КБ до десятков МБ; отражает реалии распространения ПО в 1990-х годах для японского shareware и BBS-дистрибутивов Amiga |
| Происхождение платформы | MS-DOS и PC-98 (Япония); также активно использовался на Amiga и Sharp X68000; распаковщики теперь доступны для всех основных операционных систем |
| Лимит записей | Фиксированного жесткого лимита на архив нет; ограничено 32-битными полями смещения в старых уровнях заголовков, что ограничивает размеры отдельных файлов |
| Наиболее используемый метод | -lh5- (14-битное скользящее окно, адаптивный Хаффман) - стандарт де-факто и метод, лучше всего поддерживаемый современными распаковщиками |
| Выпущен | 1988 (LHarc); LHA/LZH widely used through the 1990s |
| Последняя версия | LHA 2.x method set (-lh5-/-lh6-/-lh7-); format frozen, no active development |
| Открыть стандартное | Да · без роялти |
| Спецификация | web.archive.org |
Конвертации LZH
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах LZH.