GitHunt
NE

NeKroFR/HashQuake

Fuzzer to find collisions in any hash function using wordlists or birthday attack

HashQuake

HashQuake is a CLI for testing and discovering hash collisions.
It allows you to specify your own hashing program and evaluate it for potential collisions.

Disclaimer

Brute-force collision searching is generally infeasible against strong standard hashes (SHA-2/3, etc.).
This tool is intended to evaluate custom or toy hash functions and to help detect obviously weak implementations.

Installation

build from source:

First make sure you have go 1.23.2 or more installed

then you can run:

git clone https://github.com/NeKroFR/HashQuake.git
cd HashQuake
make

Usage:

Usage:
    ./HashQuake [OPTIONS] <command to run the algorithm>

Description:
   If -w/--wordlist is provided, HashQuake iterates the given list.
   If no wordlist is provided, HashQuake performs a birthday attack by
   generating random words of length -s/--size until a collision is found.

   The <command> is a positional argument and will be executed with the
   candidate word appended as the last argument. The tool expects the hash
   to appear on stdout of your command (one hash per run).

Options:
   -h, --help                   Display this help message
   -v, --version                Display the version of the program
   -w, --wordlist <filepath>    Specify a wordlist file
   -s, --size <num>             Specify the length of words to generate (default 3)
   -t, --threads <num>          Specify the number of threads to use (default 1)
   -d, --display                Display the collisions in real time
   -o, --output <filepath>      Specify an output file

Importing Your Own Hash Functions

You can use the templates in the /templates directory and edit the hashing function as needed.

If you do not want to use the template or there are no templates for your language, you can create your own.
However, note that the program will run the command and add the word as the last argument, and it expects the hash to appear in the program's stdout (standard output).

Languages

Go91.4%C5.7%Makefile1.5%Python1.4%

Contributors

Created August 13, 2024
Updated September 21, 2025