Hash Cracker
A security focused hash cracking tool designed to demonstrate how weak password practices can be exploited through offline dictionary attacks and why modern defensive controls are essential.
View on GitHubDemo Walkthrough
This demo demonstrates running the hash cracking tool using the MD5 hashing algorithm against a known target hash. As shown in the demo, the MD5 hash corresponding to the plaintext value hello is provided as input along with a dictionary file named wordlist.txt. The tool iterates through the wordlist and successfully recovers the original plaintext value, illustrating how weak or unsalted hashes can be compromised through offline dictionary based attacks.
</>Tools & Technologies
Core Language
- Python
- hashlib
Hash Algorithms
- MD5
- SHA1
- SHA224
- SHA256
- SHA384
- SHA512
Attack Method
- Dictionary Based Attacks
- Wordlist Processing
- Offline Hash Cracking
The Hash Cracker project was built to demonstrate how weak password practices can be exploited through offline dictionary based attacks, while reinforcing the importance of strong credential protection from a defensive security perspective.
At the core of the project is a Python based hash cracking tool that supports multiple common hashing algorithms including MD5, SHA1, SHA224, SHA256, SHA384, and SHA512. The tool accepts a target hash, a selected algorithm, and a wordlist file named wordlist.txt, then systematically hashes each candidate value and compares it against the target hash.
The cracking process leverages Python’s hashlib library to accurately replicate how hashes are generated in real systems. Each entry from the wordlist is processed as raw bytes to ensure compatibility across encodings and to prevent false negatives caused by formatting issues. When a match is found, the tool immediately reports the recovered plaintext value and its position in the wordlist.
Input validation is implemented to handle unsupported hash types, missing wordlist files, and malformed inputs. Clear console output guides the user through algorithm selection, wordlist loading, and result reporting, closely mirroring how professional security tools communicate findings during testing or analysis.
From a defensive standpoint, this project highlights how unsalted or weakly protected hashes can be quickly compromised. It reinforces why modern systems rely on salting, key stretching, and strong password policies to defend against offline attacks.
Key Takeaway
Understanding how password hashes are cracked is essential to defending against it. Strong hashing algorithms, salting, and proper credential management are critical for protecting systems from offline password attacks.