
Construtor de banco de dados de hash e ferramenta de consulta reversa — SHA256, RIPEMD160, Keccak256, BLAKE3 e mais
Construtor de banco de dados de hash e ferramenta de consulta reversa. SHA + aha!
Construa bancos de dados de hash pré-calculados a partir de wordlists e consulte-os para encontrar pré-imagens.
cargo install shaha
Ou compile a partir do código-fonte:
git clone https://github.com/oritwoen/shaha
cd shaha
cargo build --release
# Algoritmo único (padrão: sha256)
shaha build words.txt
# Múltiplos algoritmos
shaha build words.txt -a md5 -a sha256 -a keccak256
# Arquivo de saída personalizado
shaha build words.txt -o mydb.parquet
# Com metadados de fonte
shaha build rockyou.txt -a hash160 -s rockyou
# Encontrar pré-imagem por hash
shaha query 5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8
# Busca por prefixo
shaha query 5e8848
# Filtrar por algoritmo
shaha query 5e8848 -a sha256
# Formatos de saída
shaha query 5e8848 --format plain # padrão
shaha query 5e8848 --format json
shaha query 5e8848 --format table
shaha info hashes.parquet
Output:
Database: "hashes.parquet"
Records: 1000000
Size: 45.32 MB
Algorithms: sha256, md5, keccak256
Sources: rockyou
Os bancos de dados são armazenados como arquivos Apache Parquet com compressão ZSTD.
Esquema:
hash (Binary) - bytes do hashpreimage (Utf8) - dados de entrada originaisalgorithm (Utf8) - nome do algoritmosources (List) - origens das wordlistsArquivos Parquet podem ser consultados com DuckDB, Polars, Spark ou Cloudflare R2 SQL.
A configuração é carregada de (em ordem de prioridade):
.shaha.toml no diretório atual~/.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"
Construa e consulte diretamente do Cloudflare R2 ou armazenamento compatível com S3:
# Construir para R2
shaha build words.txt --r2
# Consultar do R2
shaha query 5e8848 --r2
Variáveis de ambiente:
SHAHA_R2_ENDPOINT - URL do endpoint S3/R2SHAHA_R2_BUCKET - Nome do bucketSHAHA_R2_ACCESS_KEY_ID ou AWS_ACCESS_KEY_IDSHAHA_R2_SECRET_ACCESS_KEY ou AWS_SECRET_ACCESS_KEYSHAHA_R2_PATH - Caminho dentro do bucketSHAHA_R2_REGION - Região (padrão: "auto")MIT
| Nome | Descrição | Saída |
|---|
md5 | MD5 | 128 bit |
sha1 | SHA-1 | 160 bit |
sha256 | SHA-256 | 256 bit |
sha512 | SHA-512 | 512 bit |
hash160 | RIPEMD160(SHA256(x)) - Endereços Bitcoin | 160 bit |
hash256 | SHA256(SHA256(x)) - Blocos/txids Bitcoin | 256 bit |
keccak256 | Keccak-256 - Ethereum | 256 bit |
blake3 | BLAKE3 | 256 bit |
ripemd160 | RIPEMD-160 | 160 bit |