HashStorm 🌪️: Python Tool for Hash Identification and Cracking
Sept 11, 2025 5-10 min read Project-documentation v1.1 doc v2.2 latest
Developed by Krishna Dwivedi
Objective
The Goal of this project is to develope a tool that can:
- Accept hash inputs from command-line (single or in batch) or from a hash file
- Identify the type of cryptographic hash from input values
- Crack those hash(es) values using:
- Dictionary-based attack
- By performing Lookup in Cracked hashes
- Brute-force attack using specified charset
- Perform a google search if hash not cracked
- Automate identification & cracking in single command
Project Description
HashStorm is a command-line utility built with Python, designed to identify and crack a wide variety of hash types. It automates the identification process using regular expression patterns from the hashid library and supports cracking through dictionary-based attacks.
The tool is specially valuable in:
- Pentest env
- CTF Competitions
- Cyber Forensics
- Password auditing
NOTE: This tool is intended only for educational purposes, ethical hacking, or penetration testing and ethical use only.
Features ✨
- Identify over 220 hash types accurately ( utilizes hashid ).
- Auto identify hash types for hash value(s).
- Supports Batch processing via both files and command-line arguments.
- Saves output to history, lookup.db (prevent cracking duplicates), and specified file.
- Cross-platform compatibility, as written in Python.
- Easy to install just by executing setup.sh
- Easy to launch using hashstorm command ( no need to run like python hashstorm.py )
- Utilizes python virtual environment for system protection.
- Everything configured automatically.
- Clean look and response.
- icrack Mode [Default]: simplifies workflows by handling both identification and cracking automatically
Tech Stack ⚙️
TECHNOLOGY PURPOSE
Python3.13 Core Programming language
Bash Launcher and setup script
hashid (Lib) Hash types identification
sys (Lib) CLI argument parsing
File I/O For reading writing files
Regex (Lib) For checking validity of a hash string
Hashing Libs For hashing words to crack hash(es)
Multiprocessing (Lib) For concurrent processing (default disabled due to process creation overhead)
Installation 📩
To install HashStorm, follow these steps:
- Clone the repository
git clone https://github.com/SudoHopeX/HashStorm.git - Run the setup command
sudo bash HashStorm/setup.sh - Hurray! HashStorm Installation done, Now we can storm the Hashes...
Usages
Run
hashstorm --help //to display below given usage information.
USAGES:
hashstorm [Options] [Arguments]
OPTIONS:
> --help print tool usages
> identify identify the hash-type of specified hash-value
> crack crack the hash-value (!NOTE: hash-type must be passed)
> icrack [Default] automatically identify hash-type and crack the hash-value specified
ARGUMENTS:
> -h <hash-value(s)> Add one or more hash-value to crack or identify followed by ','
> -hf <hashes file> Pass a hash file
> -H <hash-type(s)> Pass hash-type to crack
> -w <wordlist-path> Specify wordlist to use for cracking hash
> -o <output-file> Save result in specified file
> -v Verbose mode ( show detailed info while cracking ) [in update]
> -g Perform a google search if hash not cracked [in update]
> -brute Crack hashes using self defined charset and length [in update]
> -charset <charset> Specify character set for bruteforccing like "a-z,0-9" [in update]
> -length <pass-max-length> Specify hash word's maximum value [in update]
EXAMPLES:
> hashstorm identify -h 5d41402abc4b2a76b9719d911017c592
> hashstorm identify -hf hash-file.txt
> hashstorm identify -h ae3274d5bfa170ca69bb534be5a22467,5d41402abc4b2a76b9719d911017c592
> hashstorm crack -H MD5 -h 5d41402abc4b2a76b9719d911017c592 -w wordlist.txt -o output.txt
> hashstorm crack -H MD5,MD5 -h 5d41402abc4b2a76b9719d911017c592,5d41402abc4b2a76b9719d911017c592 -w wordlist.txt
> hashstorm -h 5d41402abc4b2a76b9719d911017c592 -w wordlist.txt -o output.txt
NOTE:
> Tool usages format must be followed
> Atleast 'hash-value' OR 'hashes-file' must be passed as argument
Demo 🪧
coming soon...Planned Improvements
- Brute-force engine with charset + length
- Google Search Mode: for searching uncracked hash values.
- Verbose Mode: for detailed working description
- GUI mode
- Hashcat integration
Contributing
Contributions to HashStorm are encouraged to improve features, fix bugs, or add support for more hash types. To contribute:
- Fork the repository on GitHub.
- Create a new branch for your changes.
- Submit a pull request with a detailed description of the changes.
- Before contributing, test your modifications thoroughly.
License 🪪
This project is licensed under MIT. See LICENSE file for more info.
It is intended for educational purposes, ethical hacking, or penetration testing only.
Acknowledgments 🙏
- Inspired by hashid tool in kali for hash identification
- Thanks to resources like HashID module in python for hash identification techniques.