shaha
Hash database builder and reverse lookup tool. SHA + aha!
Build precomputed hash databases from wordlists, then query them to find preimages.
Installation
Or build from source:
Usage
Build a hash database
# Single algorithm (default: sha256)
# Multiple algorithms
# Custom output file
# With source metadata
Query for preimage
# Find preimage by hash
# Prefix search
# Filter by algorithm
# Output formats
Database info
Output:
Database: "hashes.parquet"
Records: 1000000
Size: 45.32 MB
Algorithms: sha256, md5, keccak256
Sources: rockyou
Algorithms
| Name | Description | Output |
|---|---|---|
md5 |
MD5 | 128 bit |
sha1 |
SHA-1 | 160 bit |
sha256 |
SHA-256 | 256 bit |
sha512 |
SHA-512 | 512 bit |
hash160 |
RIPEMD160(SHA256(x)) - Bitcoin addresses | 160 bit |
hash256 |
SHA256(SHA256(x)) - Bitcoin blocks/txids | 256 bit |
keccak256 |
Keccak-256 - Ethereum | 256 bit |
blake3 |
BLAKE3 | 256 bit |
ripemd160 |
RIPEMD-160 | 160 bit |
Storage Format
Databases are stored as Apache Parquet files with ZSTD compression.
Schema:
hash(Binary) - hash bytespreimage(Utf8) - original input dataalgorithm(Utf8) - algorithm namesources(List) - wordlist origins
Parquet files can be queried with DuckDB, Polars, Spark, or Cloudflare R2 SQL.
Use Cases
- Security research - reverse hash lookups
- CTF challenges - quick hash cracking
- Forensics - identify known passwords
- Blockchain analysis - Bitcoin/Ethereum address research
Configuration
Configuration is loaded from (in order of priority):
- CLI flags
- Environment variables
.shaha.tomlin current directory~/.config/shaha/config.toml
Example config file
[]
= "https://account-id.r2.cloudflarestorage.com"
= "my-bucket"
= "your-access-key"
= "your-secret-key"
= "auto"
= "hashes.parquet"
[]
= ["sha256", "md5"]
= "hashes.parquet"
R2/S3 Storage
Build and query directly from Cloudflare R2 or S3-compatible storage:
# Build to R2
# Query from R2
Environment variables:
SHAHA_R2_ENDPOINT- S3/R2 endpoint URLSHAHA_R2_BUCKET- Bucket nameSHAHA_R2_ACCESS_KEY_IDorAWS_ACCESS_KEY_IDSHAHA_R2_SECRET_ACCESS_KEYorAWS_SECRET_ACCESS_KEYSHAHA_R2_PATH- Path within bucketSHAHA_R2_REGION- Region (default: "auto")
Roadmap
- R2 Data Catalog - Apache Iceberg integration for faster queries
License
MIT