
Hash-Datenbank-Builder und Reverse-Lookup-Tool — SHA256, RIPEMD160, Keccak256, BLAKE3 und mehr
Hash-Datenbank-Ersteller und Rückwärtssuche-Tool. SHA + aha!
Erstelle vorausberechnete Hash-Datenbanken aus Wortlisten und frage sie ab, um Preimages zu finden.
cargo install shaha
Oder aus dem Quellcode bauen:
git clone https://github.com/oritwoen/shaha
cd shaha
cargo build --release
# Single algorithm (default: sha256)
shaha build words.txt
# Multiple algorithms
shaha build words.txt -a md5 -a sha256 -a keccak256
# Custom output file
shaha build words.txt -o mydb.parquet
# With source metadata
shaha build rockyou.txt -a hash160 -s rockyou
# Find preimage by hash
shaha query 5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8
# Prefix search
shaha query 5e8848
# Filter by algorithm
shaha query 5e8848 -a sha256
# Output formats
shaha query 5e8848 --format plain # default
shaha query 5e8848 --format json
shaha query 5e8848 --format table
shaha info hashes.parquet
Ausgabe:
Datenbank: "hashes.parquet"
Datensätze: 1000000
Größe: 45.32 MB
Algorithmen: sha256, md5, keccak256
Quellen: rockyou
Datenbanken werden als Apache Parquet-Dateien mit ZSTD-Kompression gespeichert.
Schema:
hash (Binary) – Hash-Bytespreimage (Utf8) – ursprüngliche Eingabedatenalgorithm (Utf8) – Algorithmusnamesources (List) – Wortlisten-UrsprüngeParquet-Dateien können mit DuckDB, Polars, Spark oder Cloudflare R2 SQL abgefragt werden.
Die Konfiguration wird geladen von (in der Reihenfolge der Priorität):
.shaha.toml im aktuellen Verzeichnis~/.config/shaha/config.toml[storage.r2]
endpoint = "https://account-id.r2.cloudflarestorage.com"
bucket = "my-bucket"
access_key_id = "your-access-key"
secret_access_key = "your-secret-key"
region = "auto"
path = "hashes.parquet"
[defaults]
algorithms = ["sha256", "md5"]
output = "hashes.parquet"
Erstelle und frage direkt von Cloudflare R2 oder S3-kompatiblem Speicher ab:
# Build to R2
shaha build words.txt --r2
# Query from R2
shaha query 5e8848 --r2
Umgebungsvariablen:
SHAHA_R2_ENDPOINT – S3/R2-Endpunkt-URLSHAHA_R2_BUCKET – Bucket-NameSHAHA_R2_ACCESS_KEY_ID oder AWS_ACCESS_KEY_IDSHAHA_R2_SECRET_ACCESS_KEY oder AWS_SECRET_ACCESS_KEYSHAHA_R2_PATH – Pfad innerhalb des BucketsSHAHA_R2_REGION – Region (Standard: "auto")MIT
| Name | Beschreibung | Ausgabe |
|---|
md5 | MD5 | 128 Bit |
sha1 | SHA-1 | 160 Bit |
sha256 | SHA-256 | 256 Bit |
sha512 | SHA-512 | 512 Bit |
hash160 | RIPEMD160(SHA256(x)) – Bitcoin-Adressen | 160 Bit |
hash256 | SHA256(SHA256(x)) – Bitcoin-Blöcke/Transaktions-IDs | 256 Bit |
keccak256 | Keccak-256 – Ethereum | 256 Bit |
blake3 | BLAKE3 | 256 Bit |
ripemd160 | RIPEMD-160 | 160 Bit |