- You give it a target MD5 hash. It generates candidate strings and hashes comparing against your target until it finds a match or exhausts the configured search space.
- Python 3.6+. Standard library only, hashlib, itertools, string, sys, time. No pip installs, no virtual environment needed.
python3 md5crack.py
-
It prompts you for three things:
-
Target MD5 hash (must be 32 hex characters. Rejected immediately if it isn't).
-
Initial guess (optional): press Enter to skip. If provided, it's checked first, then folded into the corpus so its characters and length influence the search ordering for everything after it.
-
Max length (optional, default 8): the tool will search all lengths from 1 up to this value, in the order determined by corpus length frequency, not necessarily ascending.
-
The corpus is 20 hardcoded strings. It's a starting prior, not a serious dictionary. Swap it out yourself if you want it tuned to a specific target's naming conventions.
-
No multiprocessing. It runs single-threaded, single-core. For a length-7+ full-charset search this will not finish in practical time.
-
Full character set includes punctuation, which is expensive. You'd need to edit ordered_charset for that will speed things up considerably for known-format targets.
-
It is not a replacement for hashcat, John the Ripper, or any tool password auditing at scale.
- This tool is designed for learning purposes and as a utility for CTFs, small tests, and the like. The author assumes no responsibility for its misuse for other purposes.