fileformer
search⌘KtranslateENexpand_moreupload_fileConvert
Converters8 file families · 44 direct conversions
What changes in a conversionarrow_forward
home / archives / 7z

Convert 7Z Archive Free

Convert 7Z archives for free, and read what is inside one: this page parses a .7z in your browser.

A .7z keeps its table of contents at the end, usually compressed itself

7z starts with a 32-byte signature header that only says where the real header is. The packed data comes next: “folders”, each a chain of coders such as BCJ, then LZMA2, often holding many files in one solid block. Last comes the header, a tree of property IDs that 7-Zip compresses with LZMA by default and can encrypt so even the file names need the password. This page reads all of it with its own parser and LZMA decoder.

folder_openOpen .7zSample written hereOne bit flippedCut offdownloadDownload
project.7z: written here: Copy method, one solid folder of 4 files, a directory, an empty file, a UTF-16 name, Unix mode in the high attribute bits, plain (unencoded) header
signature header · the first 32 bytes of the filehover a byte
377ABCAF271C0004EF6B425CE4000000000000006F010000000000000C08A421
0signature“7z” BC AF 27 1C
6version0.4
8StartHeaderCRC5C426BEF = CRC of the next 20 bytes ✓
12NextHeaderOffset228 → header at byte 260
20NextHeaderSize367 bytes
28NextHeaderCRC21A4080C ✓
Only these 32 bytes sit at the start. A reader jumps 228 bytes past them to reach the header; without it there is no file list, which is why a cut-off .7z cannot even be listed.

Byte layout

627 B · header at the end, plain
signature headerpacked streamsheader
folder 0 · solid, 4 files228 B → 228 B (100%)
Copy
Decoded in the order shown: Copy.
namesizeCRC-32modifiedattributesfolderextract
project/2026-09-28 14:00dir
project/README.md76 BA04CF9BC2026-09-28 14:01archive0extract
project/src/main.js60 B022D596E2026-09-28 14:02archive0extract
project/data/empty.txt0 B2026-09-28 14:03archive
project/notes: Ölmühle.txt73 B3D9113EF2026-09-28 14:04archive0extract
project/bin/run19 BB2E6A2BC2026-09-28 14:05archive · unix 7550extract
check_circleStart header CRC matches.Bytes 12-31 checked.
check_circleHeader CRC matches.367 B checked.
infoPlain header.Written uncompressed: fine for small archives; 7-Zip normally LZMA-compresses it.
info1 solid folder(s).Best compression for many similar files, but reading the last file means decoding all of them, and damage spreads to every later file in the block.
check_circleUnix permissions stored.p7zip/7-Zip set bit 0x8000 and keep st_mode in the high 16 bits of the Windows attributes.
solid blocks · bytes that must be decoded before each file

In a solid folder every file is a slice of one continuous stream. Reaching a file means decompressing everything in front of it, and one damaged byte breaks every file after it in that block. ZIP compresses each file on its own, so it costs more space but you can read files in any order.

project/README.md76 B
project/src/main.js136 B
project/notes: Ölmühle.txt209 B
project/bin/run228 B
7z number lab

How 7z writes a 64-bit number in 1 to 9 bytes

Every size, count and offset in the header uses one variable-length scheme. The number of leading 1 bits in the first byte says how many extra little-endian bytes follow, and the rest of the first byte holds the top bits. Small numbers take one byte: 0x00-0x7F.

5127128300,0008 GB
C4110001002 leading 1s + 0, then 5 high bits
E011100000byte 0 (little-endian)
9310010011byte 1 (little-endian)
300,000 → 3 byte(s); decoded back: 300,000 ✓
bytesfirst bytelargest value
10xxxxxxx127
210xxxxxx16,383
3110xxxxx2,097,151
41110xxxx268,435,455
511110xxx34,359,738,367
6111110xx4,398,046,511,103
71111110x562,949,953,421,311
8111111102^56 − 1
9111111112⁶⁴ − 1

Reference

IDpropertyholds
01Headereverything below
02ArchivePropertiesrarely used
04MainStreamsInfopack info, folders, substreams
05FilesInfonames, times, attributes, empty streams
06PackInfopacked stream positions, sizes, CRCs
07UnPackInfofolders: coder chains and output sizes
08SubStreamsInfohow each folder splits into files
0BFolderone coder graph
0EEmptyStreambit per file: no data (dirs, empty files)
0FEmptyFileamong empty streams: file, not directory
11NameUTF-16LE, NUL-terminated
14MTimeFILETIME: 100 ns since 1601
15WinAttributesWindows attributes; Unix mode in high bits
17EncodedHeaderthe real header is itself packed
coder IDmethodrolehere
00Copystoreddecoded
21LZMA2default for content, multithreaded chunkslisted
03 01 01LZMAdefault for the headerdecoded
03 03 01 03BCJx86 executable filterlisted
03 03 01 1BBCJ2x86 filter with 4 streamslisted
0AARM64ARM64 executable filterlisted
03 04 01PPMdtext-friendly context modellinglisted
04 02 02BZip2Burrows: Wheelerlisted
04 01 08DeflateZIP’s methodlisted
06 F1 07 01AES-256encryption, SHA-256 key derivationlisted
MIMEapplication/x-7z-compressed
Magic bytes37 7A BC AF 27 1C (“7z” + 4 bytes) + version 00 04
Extensions.7z; split volumes .7z.001, .7z.002…; self-extracting .exe with the archive appended
Limits64-bit sizes everywhere; dictionary up to 4 GB (LZMA2), 1.5 GB in 32-bit 7-Zip
NamesUTF-16 in the header: no code-page confusion as in old ZIPs
Missingno recovery records, no streaming: the header comes last, so a cut file loses its listing
19997-ZipIgor Pavlov releases 7-Zip for Windows.
20017z format & LZMAA new container with the LZMA algorithm.
2004p7zipA port brings 7z to Linux and macOS command lines.
2008LZMA SDKPlaced in the public domain.
2009LZMA2 & XZChunked, multithreaded LZMA; the same coder powers .xz.
20217-Zip for LinuxOfficial Linux builds from 7-Zip 21.

Other archives, other trade-offs