What is the LZH file format?
LZH files contain file archives compressed using LZSS (a Lempel-Ziv variant) combined with Huffman encoding, developed by Haruyasu Yoshizaki in 1988 under the name LHarc. This compression method lets users effectively conserve disk space, and the format became extremely popular in Japan and among Amiga users throughout the 1990s. The Japanese version of Windows 7 included a built-in tool for managing LZH files, while Windows XP offered one as an optional feature.
A single LZH archive can contain:
- files of any format, including executable files,
- folder structures,
- stand-alone programs along with configuration files.
The .lha and .lzh extensions are interchangeable - they refer to the same format and tool lineage (LHarc → LHA). LZH archives may use various compression methods, defined in each file's header by a method tag such as -lh0- (store), -lh5-, -lh6-, or -lh7-. The -lh5- method was the most widely used and is still the one best supported by modern extractors.
LZH was once the dominant archive format for Japanese software distribution and the Amiga BBS scene. It is now considered legacy, having been superseded by ZIP, 7z, and RAR for general-purpose archiving. Native encryption is not supported; a CRC-16 checksum in each file's header allows integrity verification on extraction.
Security & safety
RISK: MEDIUMLZH archives carry no native encryption and can hold any payload, so treat an unsolicited .lzh like any unknown archive - scan it before extracting and don't run unknown executables from old downloads. A specific historical concern: the widely-used Windows UNLHA32.DLL decompressor had security vulnerabilities, which led Japan's IPA to recommend retiring LZH for new use. Use a current extractor (7-Zip, PeaZip, lhasa) rather than ancient LHA tools.
Format details
in a nutshellPrograms that open LZH files
Technical details
deep spec| Compression algorithm | LZSS (dictionary-based Lempel-Ziv variant) combined with static or adaptive Huffman coding |
| Compression methods | -lh0- (store/uncompressed), -lh1-, -lh4-, -lh5-, -lh6-, -lh7-; the method tag is stored in each file's individual header |
| File signature | Method tag bytes at offset 2 (e.g., -lh or -lz); bytes 0-1 are the header size and checksum - the signature is not at offset 0 |
| Encoding | Binary, little-endian |
| Per-file header structure | Contains method tag, original and compressed size, CRC-16 checksum, modification timestamp, and filename |
| Header levels | Level 0, 1, and 2 (and 3) - define the layout of header fields and maximum filename length |
| Integrity | CRC-16 per archived file stored in its header; most extraction tools verify the checksum on decompression |
| Encryption | None - LZH has no native encryption; archives cannot be password-protected |
| MIME type | application/x-lzh-compressed |
| Interchangeable extensions | .lzh and .lha refer to the same format and tool lineage; both extensions are in common use |
| Typical archive size | A few KB to tens of MB; reflects 1990s software distribution for Japanese shareware and Amiga BBS distributions |
| Platform origin | MS-DOS and PC-98 (Japan); also heavily used on Amiga and Sharp X68000; extractors now available on all major operating systems |
| Entry limit | No fixed hard limit per archive; bounded by 32-bit offset fields in older header levels, which constrain individual file sizes |
| Most widely used method | -lh5- (14-bit sliding window, adaptive Huffman) - the de-facto standard method and the one best supported by modern extractors |
| Released | 1988 (LHarc); LHA/LZH widely used through the 1990s |
| Latest version | LHA 2.x method set (-lh5-/-lh6-/-lh7-); format frozen, no active development |
| Open standard | Yes · royalty-free |
| Specification | web.archive.org |
LZH conversions
Community Q&A
asked by usersNo questions yet - be the first to ask about LZH files.