More than 590 hash modes make Hashcat an offline recovery workbench
Hashcat supports more than 590 hash modes and 5 attack modes across CUDA, HIP, Metal, and OpenCL. It accepts candidates from wordlists, standard input, rules, masks, and external generators. Sessions can pause, resume, restore after interruption, and watch device temperature. That breadth suits authorized audits and recovery from supported files. It does nothing useful against a login page unless the tester has a compatible hash or encrypted artifact.
Our checkout held 4,281 files, roughly 423,663 lines of source, and occupied 77.9 MB. The tree contains a native engine, hash modules, compute kernels, plugins, and Rust bindings. Picking the correct mode matters more than trying random switches. Hashcat ships one example hash per mode, giving operators a known input for checking syntax before committing hardware time to recovery.
Hashcat v7.1.2 still depends on a working compute backend
Hashcat v7.1.2 is an archive that users unpack in place, and some operating systems package it separately. The standard path needs no cloud account, root service, or API credential. A job still needs CUDA, HIP, Metal, or OpenCL to recognize a device and compile its kernel. Built-in benchmark and self-test commands check that path on the intended host.
Our sandbox installed 1 Rust package in 9 seconds without loading CUDA, HIP, Metal, or OpenCL. Issue 4719 reports Hashcat 7.1.2 finding no usable OpenCL device in one Kali Linux 2026.2 VMware setup, while the prior distribution worked on the same host. That is one report rather than a universal VM limitation. Package, runtime, driver, and virtualization versions must be tested together.
What happened when we ran it
Our lab found the Rust project at Rust/hashcat-sys/ in commit 1bd6dec. Cargo installed 1 package in 9 seconds, built it in 15 seconds, and tested it in 6 seconds. The result was 2 passed and 0 failed out of 2 in a 3-CPU, 12 GB unprivileged Debian container with no secrets.
The 2 Rust tests do not measure native Hashcat correctness, recovery speed, or GPU compatibility. We ran no hash mode or benchmark, so there is no throughput figure. The scan found 3 CI workflow files, no Dockerfile, and no tests directory. Those signals match separate Build, BSD, and Rust workflows, while the build guide points to an optional package-check script.
Python 3.12 and an OpenCL device are needed for the full source check
The build guide requires Python 3.12 or newer, then uses make. Its optional tools/test_package.sh check starts the binary, loads every module, produces candidates through a feed, compiles a kernel, and cracks a sample hash. The final group needs 1 OpenCL device, and a CPU is accepted. That procedure checks a source build; Cargo covers only the Rust edge.
Our Rust build completed in 15 seconds, but the repository has 423,663 lines and many non-Rust paths outside that crate. The release package is simpler when no source change is needed, and the README says a self-built binary is not faster. Contributors should run the package check on supported hardware and test changed modules. Container users need the separate Docker guide because the scan found no Dockerfile.
Brain traffic needs an encrypted tunnel
Brain mode uses a 32-bit challenge and shared password to keep workers from repeating candidates. The protocol has no encryption or transport integrity, and the server may listen on all interfaces when no host is specified. An observer can inspect or alter traffic, disrupting deduplication. Put Brain behind a VPN, SSH tunnel, or other trusted encrypted channel outside an isolated cracking network.
The 6-second test run and its 2 passing cases did not start Brain. Hashcat runs as one process with its user's privileges, installs no service, and offers no sandbox. Modules, kernels, bridges, and feeds are executable trust decisions. The Rust bridge in v7.1.2 makes custom algorithms easier to write, but third-party code remains code.
Restore files and plugins cross a real trust boundary
Hashcat v7.1.2 resumes interrupted sessions, but its policy tells users to read a restored command line and avoid automatic restore with an untrusted file. Issue 4738 reports potential argument injection through a crafted restore file and includes a provisional, unpublished CVE reservation. A reservation is not confirmation. The report supports the project's rule that untrusted restore files and plugin code require program-level caution.
Our lab added only 1 Rust package and reported no Rust dependency-vulnerability count, so it supplies no general security verdict. The project develops security fixes on master for the next release; old releases get no patch branch. Organizations needing a fixed support window must track master, releases, and advisories themselves or obtain that service elsewhere.
August 2026 pushes show active maintenance beyond v7.1.2
GitHub recorded the last push on August 31, 2026, a year after v7.1.2 appeared on August 23, 2025. The repository had 26,673 stars and 355 open issues and pull requests; an issue-only search returned 271 open issues. The release tag alone is stale health evidence. The later push and updated hardware, parser, and kernel reports show continued work.
The repository has 3 CI workflow files, while our run passed 2 Rust tests without reaching the native engine. Hashcat is a sensible first trial for authorized offline recovery when its modes cover the material and the compute host passes a self-test. Use a narrow account, verify downloaded inputs, and protect network coordination. For fleet scheduling, put Hashtopolis around it rather than stretching Brain into a control plane.

