PasswordGeeks
Tool Guide

Hashcat: GPU-Accelerated Password Recovery

Hashcat is an advanced password recovery and auditing tool designed to test password hashes against candidate passwords using modern CPU and GPU hardware. It is widely used in authorized security assessments, password audits, research, and forensic work.

Updated: August 2026 · Hashcat 7.x

What Is Hashcat?

Hashcat is an open-source password recovery tool used to test candidate passwords against password hashes. Rather than attempting to log into an online account, Hashcat works with hash data that has already been obtained during an authorized assessment, forensic investigation, research project, or laboratory exercise.

Its major strength is performance. Hashcat can use compatible GPU and CPU devices to perform large numbers of hash calculations in parallel, making it particularly useful when auditing large collections of password hashes.

Type
Password recovery / auditing tool
License
Open source · MIT
Interface
Command line
Primary Strength
High-performance offline auditing
Important distinction: Hashcat is an offline password-recovery tool. It does not provide a way to log into or directly "crack" an online account such as Gmail, Instagram, or another web service.

Why GPU Acceleration Matters

Password hashing involves repeatedly calculating a hash for candidate passwords and comparing the resulting value with a target hash. Many of these calculations can be performed independently, making the workload well suited to parallel hardware.

GPUs contain large numbers of processing units designed to execute many operations simultaneously. For hash algorithms that are highly suitable for GPU processing, this can provide a substantial performance advantage over a CPU-only approach.

However, there is an important caveat: not every password-hashing algorithm benefits equally from GPU acceleration. Modern password-storage algorithms such as Argon2, bcrypt, and scrypt deliberately make password guessing more expensive through computational and/or memory requirements.

Installation & First Run

Hashcat is distributed for major desktop operating systems. The official project recommends downloading the current release from Hashcat's website and extracting the archive rather than relying exclusively on third-party packages.

Linux / Kali

On Debian-based systems, Hashcat may also be available through the package manager. For the version directly supported by the Hashcat project, however, use the official release archive.

Check installation
hashcat --version

Check Available Devices

Before performing any password audit, verify that Hashcat can see the hardware you intend to use.

hashcat -I

Run a Benchmark

A benchmark is useful for confirming that the installation and supported compute devices are working correctly.

hashcat --benchmark
Tip: If Hashcat cannot detect your GPU or compatible compute device, check the vendor driver and Hashcat's official hardware/installation documentation before troubleshooting the command itself.

Understanding Hash Types

Before running an audit, Hashcat needs to know what kind of hash it is processing. This is specified with the -m option.

The numeric value corresponds to a Hashcat hash mode. Choosing the wrong mode can result in failed or misleading results even when the candidate passwords and command syntax are otherwise correct.

Hash Hashcat Mode Common Context
MD5 0 Legacy applications and historical datasets
SHA-1 100 Legacy applications and research datasets
SHA-256 1400 General-purpose hashing and application data
NTLM 1000 Windows authentication environments
Security note: MD5 and SHA-1 should not be used as password-storage algorithms. Fast general-purpose hashes allow attackers to test candidate passwords extremely quickly. Password storage should use a modern, deliberately expensive password-hashing scheme.

Finding the Correct Hash Mode

Hashcat provides built-in help for its supported hash modes. You can inspect the available modes from the command line rather than relying on an outdated third-party table.

hashcat -hh

Hashcat Attack Modes

The -a option determines how Hashcat generates password candidates.

Mode Option Purpose
Dictionary / Straight -a 0 Tests candidates from a wordlist.
Combinator -a 1 Combines candidates from multiple wordlists.
Mask -a 3 Generates candidates according to defined character patterns.
Hybrid Wordlist + Mask -a 6 Combines wordlist candidates with generated characters.
Hybrid Mask + Wordlist -a 7 Combines generated mask candidates with wordlist material.
Association -a 9 Uses associated information such as usernames, filenames, hints, or other context in candidate generation.
Which mode should you use? Start with the least expensive candidate-generation strategy that makes sense for your authorized test. A dictionary attack is often a useful first step because it can quickly identify weak or reused passwords without immediately exploring a much larger search space.

Important Hashcat Commands

Hashcat has a large command-line interface. These are some of the options worth understanding first.

Option Purpose
-m Select the hash type.
-a Select the attack mode.
-I Display available compute devices.
--benchmark Run performance benchmarks.
--show Display recovered results stored in the potfile.
--status Display status information during a running job.
--session Assign a name to a running session.
--restore Resume a previously interrupted session.
-O Enable optimized kernels where supported, with associated limitations.

Generic Command Structure

hashcat -m [hash-mode] -a [attack-mode] [hash-file] [candidate-source]

For an authorized laboratory exercise, the values would be replaced with the hash mode, attack mode, hash file, and candidate source appropriate to that exercise.

Authorized Lab Workflow

A good Hashcat workflow is not simply "run a cracking command." The important part is understanding what is being tested and why.

Define the scope
Confirm that the hashes belong to the assessment and that password recovery is explicitly authorized.
Identify the hash type
Determine which algorithm and format the dataset uses before selecting the Hashcat mode.
Prepare the candidate source
Choose an appropriate wordlist or candidate-generation strategy for the authorized test.
Select the attack mode
Choose dictionary, combinator, mask, or another appropriate mode based on the audit objective.
Run and monitor the job
Watch progress, speed, workload, temperature, and device status.
Review the results
Use the recovered results to identify weak password practices and improve the organization's password-storage controls.
Illustrative laboratory example
hashcat -m 0 -a 0 sample_hashes.txt sample_wordlist.txt

The example above is intentionally limited to a controlled laboratory dataset. The important concept is the relationship between the hash mode, attack mode, target hash file, and candidate source.

Understanding Hashcat Output

When a Hashcat job is running, the status information tells you much more than simply whether a password has been recovered.

Status Running / Exhausted / Cracked
Speed Candidate calculations per second
Progress How much of the candidate space has been processed
Recovered Number of target hashes recovered
Remaining Target hashes still unrecovered

Speed alone does not determine whether a password is secure. The relevant question is how large the candidate space is and how resistant the underlying password-hashing algorithm is to repeated guessing.

Real-World Use Cases

Hashcat does not obtain passwords or hashes from online accounts. It operates on hash data already available to the authorized tester. For live authentication testing, different tools and assessment methods are used.

For network authentication testing in an authorized environment, see our Hydra guide. For another password-recovery tool with different strengths, see our John the Ripper tutorial.

Hashcat vs. John the Ripper

Both are established password-recovery tools, but they have different strengths and workflows.

Feature Hashcat John the Ripper
Primary strength High-performance candidate testing Broad format support and flexible password auditing
Hardware GPU and compatible CPU devices CPU-focused with additional hardware support depending on build
Attack flexibility Extensive attack and candidate-generation options Strong wordlist and rule-based workflows
Best suited for Large offline password-auditing workloads Flexible password recovery and varied formats
Interface Command line Command line

Neither tool is universally "better." The right choice depends on the hash format, hardware, candidate-generation requirements, and objective of the authorized assessment.

Common Hashcat Problems

GPU or device not detected

First check whether Hashcat can see the available compute devices.

hashcat -I

If the expected device is missing, check the appropriate vendor driver and consult the official Hashcat installation documentation.

Wrong hash mode

A hash may look correct while still being interpreted using the wrong algorithm or format. Verify the source application's hashing method and use Hashcat's current mode documentation.

Hashcat reports an unsupported or invalid hash

Check the input format carefully. Some hash formats include salts, prefixes, usernames, separators, or other metadata that must be represented correctly.

Performance is unexpectedly low

Best troubleshooting practice: Check Hashcat's official FAQ before applying random driver or system changes. The project maintains specific troubleshooting guidance for device-detection and installation problems.

How to Defend Against Hash Cracking

Hashcat is useful for defenders because it demonstrates the practical consequences of weak password storage.

Use a Password-Specific Hashing Algorithm

Do not store passwords using fast general-purpose algorithms such as MD5 or SHA-1. Use a password-hashing or password-derived key function designed to make guessing expensive.

Salt Every Password

Each password should have its own unique cryptographic salt. Salting prevents identical passwords from producing identical stored hashes and makes precomputed rainbow-table attacks far less useful.

Use Strong Passwords

Long, unique passwords increase the size of the candidate space an attacker must search. Password managers are particularly useful for generating and storing unique passwords.

Add Multi-Factor Authentication

Even if a password is eventually exposed, MFA can provide an additional barrier against account compromise.

Frequently Asked Questions

Is Hashcat legal?

Hashcat itself is legitimate security software. Its legality depends on how it is used. Use it only against hashes you own or have explicit authorization to test.

Is Hashcat free?

Yes. Hashcat is open-source software released under the MIT license.

Does Hashcat require a GPU?

No. Hashcat can work with compatible CPU devices as well as GPUs. GPUs are particularly useful for workloads that benefit strongly from parallel processing.

What does -m mean in Hashcat?

The -m option specifies the Hashcat hash mode, which identifies the hash algorithm and format being processed.

What does -a mean in Hashcat?

The -a option selects the attack mode, such as dictionary, combinator, mask, or hybrid attacks.

Can Hashcat crack an online account?

No. Hashcat is designed for offline password recovery and auditing. It does not directly perform online login attempts against services such as Gmail or Instagram.

Why are MD5 and SHA-1 passwords easier to audit than bcrypt or Argon2?

MD5 and SHA-1 are fast general-purpose hash functions. Password-specific algorithms such as bcrypt, scrypt, and Argon2 deliberately increase the cost of each password guess.

Do I need an expensive GPU?

No. A supported device can be used for learning and small laboratory exercises. Higher-end hardware can process suitable workloads faster, but hardware is only one part of password-recovery performance.

Official Hashcat Resources

For current releases, documentation, supported hash modes, and troubleshooting information, use the project's official resources.

Related PasswordGeeks Guides

Conclusion

Hashcat is one of the most powerful tools available for authorized offline password auditing. Its value is not simply that it can test large numbers of candidates quickly; it demonstrates why password-storage design, password length, unique credentials, and MFA matter.

For cybersecurity professionals and students, Hashcat is particularly useful in a controlled laboratory because it connects theoretical password-security concepts with measurable results. Used responsibly, it can help organizations identify weak password practices before attackers do.

Bottom line: Hashcat is a powerful password-auditing tool, but its effectiveness depends on the hash algorithm, candidate space, available hardware, and password-storage design. The best defense is not trying to make Hashcat impossible to use — it is making password recovery computationally impractical through modern password hashing, unique salts, strong passwords, and MFA.