Compressed archive file

application/octet-stream

Safe

Magic Bytes

Offset: 10
23 20 54 68 69 73 20 69 73 20 61 20 73 68 65 6C 6C 20 61 72 63 68 69 76 65

The LZH file format is a compressed archive type originally developed by Haruyasu Yoshizaki, utilizing the Lempel-Ziv-Huffman algorithm for efficient data reduction. It was historically dominant on MS-DOS and Amiga platforms, serving as a primary standard for software distribution and consolidating multiple files into single packages. Although now considered a legacy format and largely replaced by ZIP, it remains supported by many modern archiving utilities for accessing older data collections.

Extension

.lzh

MIME Type

application/octet-stream

Byte Offset

10

Risk Level

Safe

Validation Code

How to validate .lzh files in Python

Python
def is_lzh(file_path: str) -> bool:
    """
    Check if file is a valid LZH by magic bytes.
    Signature offset: 10 bytes
    """
    signature = bytes([0x23, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x73, 0x68, 0x65, 0x6C, 0x6C, 0x20, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65])
    with open(file_path, "rb") as f:
        f.seek(10)
        return f.read(25) == signature

How to validate .lzh files in Node.js

Node.js
function isLZH(buffer: Buffer): boolean {
  // Signature offset: 10 bytes
  const signature = Buffer.from([0x23, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x73, 0x68, 0x65, 0x6C, 0x6C, 0x20, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65]);
  if (buffer.length < 35) return false;
  return buffer.subarray(10, 35).equals(signature);
}
Go
func IsLZH(data []byte) bool {
    // Signature offset: 10 bytes
    signature := []byte{0x23, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x73, 0x68, 0x65, 0x6C, 0x6C, 0x20, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65}
    if len(data) < 35 {
        return false
    }
    return bytes.Equal(data[10:35], signature)
}

API Endpoint

GET /api/v1/lzh
curl https://filesignature.org/api/v1/lzh

Related Formats