Skip to content

Hashcat vs John the Ripper: which cracker should you use?

A practical comparison of hashcat and John the Ripper — GPU vs CPU strengths, autodetection, -m modes, jumbo formats, wordlists and rules — with example commands.

Published on 2 min read

Once you have identified a hash, the next decision is which tool to point at it. The two dominant password crackers are hashcat and John the Ripper. They overlap heavily, but each has a sweet spot, and knowing which to reach for saves real time.

How the two tools differ

Hashcat is GPU-first. It is built to saturate one or many graphics cards, and on fast, unsalted hashes that throughput is enormous. The trade-off is that hashcat is explicit: you must tell it the algorithm with a numeric -m mode. There is no autodetection — you supply the mode you got from identifying the hash.

John the Ripper is CPU-first and friendly. The community "jumbo" build supports an enormous catalogue of formats, many of which hashcat does not cover, and it will autodetect the format from the file in most cases. John also bundles the *2john helpers (zip2john, pdf2john, and so on) that extract a crackable hash from a container file.

A reasonable rule of thumb: reach for hashcat when you have a GPU and a common, fast hash like MD5 or SHA-256; reach for John when you are on CPU, dealing with an unusual format, or want autodetection to do the thinking.

Example commands

A straight wordlist attack in hashcat against an MD5 digest (mode 0):

hashcat -m 0 -a 0 hash.txt rockyou.txt

For NTLM you change only the mode to 1000; for bcrypt it is 3200. The matching number is listed on each hash type page.

The equivalent in John the Ripper, letting it autodetect, is simply:

john --wordlist=rockyou.txt hash.txt

If you want to pin the format explicitly — useful when autodetection is ambiguous between, say, raw MD5 and NTLM — name it:

john --format=nt --wordlist=rockyou.txt hash.txt

Wordlists and rules

Both tools are only as good as the candidates you feed them. A wordlist supplies the base guesses; rules mutate each one — appending digits, swapping letters for symbols, toggling case — so a single entry like password expands into Password1, p@ssw0rd and thousands of variants. Add rules with -r best64.rule in hashcat or --rules in John.

Slow, salted algorithms such as sha512crypt resist brute force by design, so against those a smart, rule-driven wordlist beats raw speed every time. If the difference between fast and slow hashes is new to you, the next post — why fast hashes are dangerous — explains exactly why algorithm choice dominates the maths.

Related articles

Found a mystery hash? Learn the signals that reveal its type — length, character set and prefixes like $2y$ or $6$ — and how to identify it privately in your browser.
MD5 and SHA-1 fall to a GPU in seconds because they are fast and often unsalted. Learn why slow KDFs like bcrypt and Argon2 resist — and what defenders should do.
rockyou.txt is a starting line, not a strategy. How to combine curated wordlists, rules, masks and targeted lists, and when each one is a waste of GPU time.