This guide provides detailed instructions on using the dicti0nary-attack tool.
git clone https://github.com/Hyperpolymath/dicti0nary-attack.git
cd dicti0nary-attack
pip install -e .pip install dicti0nary-attackGenerate 1000 passwords using leetspeak:
dicti0nary generate -g leetspeak -n 1000Crack a SHA256 hash:
dicti0nary crack <hash> -a sha256 -g patternGenerate non-dictionary passwords.
dicti0nary generate [OPTIONS]Options:
-g, --generator- Generator type (leetspeak, phonetic, pattern, random, markov)-n, --count- Number of passwords to generate-o, --output- Output file path-f, --format- Output format (text, json, csv)--min-length- Minimum password length--max-length- Maximum password length
Examples:
# Generate 5000 leetspeak passwords
dicti0nary generate -g leetspeak -n 5000
# Generate passwords and save to file
dicti0nary generate -g pattern -n 10000 -o passwords.txt
# Generate with custom length constraints
dicti0nary generate -g random -n 1000 --min-length 12 --max-length 20Crack a password hash.
dicti0nary crack <HASH> [OPTIONS]Options:
-a, --algorithm- Hash algorithm (md5, sha1, sha256, sha512, etc.)-g, --generator- Generator to use for passwords-w, --wordlist- Use wordlist file instead of generator-p, --parallel- Enable parallel processing--workers- Number of worker processes (default: 4)
Examples:
# Crack using pattern generator
dicti0nary crack 5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8 -a sha256 -g pattern
# Crack using wordlist
dicti0nary crack <hash> -a md5 -w wordlists/my_list.txt
# Crack with parallel processing
dicti0nary crack <hash> -a sha256 -g leetspeak -p --workers 8Create a custom wordlist file.
dicti0nary create-wordlist <PATH> [OPTIONS]Options:
-g, --generator- Generator type (required)-n, --count- Number of passwords to generate (default: 10000)
Examples:
# Create leetspeak wordlist
dicti0nary create-wordlist wordlists/leetspeak.txt -g leetspeak -n 50000
# Create phonetic wordlist
dicti0nary create-wordlist wordlists/phonetic.txt -g phonetic -n 10000Hash a password for testing.
dicti0nary hash-password <PASSWORD> [OPTIONS]Options:
-a, --algorithm- Hash algorithm (default: sha256)
Examples:
# Hash with SHA256
dicti0nary hash-password "mypassword"
# Hash with MD5
dicti0nary hash-password "mypassword" -a md5Display information about available generators and algorithms.
dicti0nary infoConverts normal words using character substitutions:
- a → 4, @
- e → 3
- i → 1, !
- o → 0
- s → 5, $
- etc.
Best for: Passwords where users think they're clever (P@ssw0rd)
Uses phonetic substitutions:
- for → 4
- to → 2
- you → u
- see → c
- etc.
Best for: Passwords using text-speak (cu2nite, brb)
Generates pattern-based passwords:
- Keyboard walks (qwerty, asdfgh)
- Sequential patterns (abc123, 123456)
- Date patterns (01011990)
- Repeating patterns (aaabbb)
Best for: Predictable patterns
Creates random character combinations.
Best for: High-entropy testing
Uses Markov chains to generate statistically similar passwords based on training data.
Best for: Mimicking password patterns from breached databases
- MD5 (128-bit)
- SHA1 (160-bit)
- SHA224, SHA256, SHA384, SHA512
- BLAKE2b, BLAKE2s
- Use Parallel Processing: Enable
-pflag for multi-core systems - Adjust Worker Count: Use
--workersto match your CPU cores - Choose Right Generator: Pattern generator is often fastest for common passwords
- Batch Size: Configure in config file for optimal performance
Generate passwords once and test against multiple hashes by using wordlist mode:
# Generate wordlist
dicti0nary create-wordlist wordlists/test.txt -g pattern -n 100000
# Use for multiple cracks
dicti0nary crack <hash1> -w wordlists/test.txt -a sha256
dicti0nary crack <hash2> -w wordlists/test.txt -a sha256Create a YAML or JSON configuration file:
# my_config.yaml
generators:
leetspeak:
max_substitutions: 5
min_length: 8
max_length: 20
cracker:
algorithm: sha512
workers: 8
batch_size: 5000Use with commands:
dicti0nary --config my_config.yaml generate -g leetspeak -n 1000Set logging level:
export DICTI0NARY_LOG_LEVEL=DEBUG
dicti0nary generate -g pattern -n 100Test if users are using leetspeak variations of dictionary words:
# Generate leetspeak variations
dicti0nary create-wordlist audit_wordlist.txt -g leetspeak -n 100000
# Test against company password hashes
dicti0nary crack <hash> -w audit_wordlist.txt -a sha256Quickly test common non-dictionary patterns:
dicti0nary crack <ctf_hash> -a md5 -g pattern -pGenerate datasets for password strength analysis:
# Generate multiple wordlists
dicti0nary create-wordlist data/leetspeak.txt -g leetspeak -n 50000
dicti0nary create-wordlist data/phonetic.txt -g phonetic -n 50000
dicti0nary create-wordlist data/patterns.txt -g pattern -n 50000
# Analyze with your tools
python analyze_passwords.py data/*.txtAuthorized Use:
- Penetration testing with explicit written permission
- Security audits of systems you own
- CTF competitions
- Academic research
- Password strength analysis on your own data
Prohibited Use:
- Unauthorized access to computer systems
- Cracking passwords without permission
- Any illegal activity
Violating these terms may result in criminal prosecution under computer fraud and abuse laws.
View built-in help:
dicti0nary --help
dicti0nary generate --help
dicti0nary crack --helpReport issues:
Run performance benchmarks:
python -m dicti0nary_attack.benchmarkThis will test all generators and hash algorithms to help you optimize your workflow.