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.
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.