Hashcat Compressed Wordlist
A single decompression stream is a bottleneck. If you have a 100GB wordlist compressed on a spinning HDD, the zcat process might feed Hashcat at 50 MB/s, but your RTX 4090 can process 100 GB/s worth of candidate rules. The pipe becomes the bottleneck.
Enter split + compress + parallel queues. hashcat compressed wordlist
When splitting a wordlist across multiple Hashcat instances (e.g., using -s and -l skip/limit parameters), working with compressed files avoids the need to pre-split a huge plaintext file. Each node can read the same compressed archive and seek to its approximate byte offset, reducing coordination overhead. A single decompression stream is a bottleneck
For .7z or password-protected (non-encrypted header) archives: The -so flag stands for "stdout output
7z x -so wordlist.7z | hashcat -a 0 hash.txt -
The -so flag stands for "stdout output."
Rather than generic compression, Hashcat offers its own highly optimized hashcat.hcstat2 and markov files. These are not wordlists but probabilistic tables generated from training data. While not compressed wordlists per se, they represent a complementary approach: use a compressed traditional wordlist for targeted attacks, and a .hcstat2 file for brute-force/mask attacks based on character distribution. Advanced users often combine both: a small, highly curated compressed wordlist (e.g., company-specific-words.gz) fed through a rule engine, alongside a Markov-generated mask.