hashblade

Fast hash detection and cracking right from your terminal. Identify hash types, crack passwords, and generate mutation variants — all in one Rust CLI.

Build from source View on GitHub
$ hashblade detect --hash 5f4dcc3b5aa765d61d8327deb882cf99

Features

Everything you need for hash identification and cracking workflows.

Hash detection

Identify hundreds of hash formats via regex pattern rules with confidence scoring (0–100%).

Multi-algorithm cracking

MD5, SHA-1, SHA-256, SHA-512, SHA3-256, BLAKE2b-512, and NTLM (MD4 + UTF-16LE).

Three attack modes

Dictionary with rayon-parallel lookup, hybrid (wordlist + numeric prefixes/suffixes), and brute force.

Smart mode

Auto-detect the hash type then crack it automatically. Falls through gracefully for detect-only types.

Password mutation

Generate case variants, simple leetspeak, and numeric prefix/suffix candidates from source words.

Flexible input

Single values (--hash / --word), line-based files (--file), or CSV (--csv).

Commands

Four subcommands cover the full detection-to-cracking pipeline.

detect

Identify hash types from input strings and print confidence scores.

--hash 5f4dcc3b5aa765d61d8327deb882cf99MD5 (95%)
  → NTLM (95%)

crack

Crack hashes with a specified algorithm and attack mode.

$ hashblade crack \
  --algorithm md5 \
  --attack dictionary \
  --wordlist ./rockyou.txt \
  --hash 5f4dcc3b5aa765d61d8327deb882cf99found: password

smart

Auto-detect then crack — no need to specify the algorithm.

$ hashblade smart \
  --attack hybrid \
  --wordlist ./words.txt \
  --hash d033e22ae348aeb5660fc2140aec35850c4da997detect: SHA-1 (95%)
  → found: admin42

mutate

Generate variant candidates from a source word.

$ hashblade mutate --word Password
  → password
  → PASSWORD
  → Password
  → P@ssword
  → Password0 … Password99
  → 0Password … 99Password

Attack modes

Three strategies for cracking, all parallelised with rayon.

dictionary

Exact matches against a wordlist. Fastest method when you have a good wordlist.

FlagDescription
--wordlistPath to wordlist file (required)

hybrid

Wordlist combined with numeric prefixes and suffixes (e.g. password42, 99admin).

FlagDefaultDescription
--wordlistPath to wordlist file (required)
--hybrid-max-number99Maximum numeric suffix/prefix value

brute

Charset-based brute force enumeration. Good for short keys and PINs.

FlagDefaultDescription
--max-length4Maximum candidate length
--charsetASCII 32–126Character set for candidate generation

Installation

Build from source with the Rust toolchain.

1

Clone the repository

git clone https://github.com/smitverma/hashblade.git
cd hashblade
2

Build from source OR install system-wide

cargo build --release

OR

./install.sh
3

Run the binary

./target/release/hashblade --help

Global options

Available on every command.

FlagDefaultDescription
--patterns <PATH>patterns.jsonJSON file with detection regex rules
-h, --helpPrint help
-V, --versionPrint version