Username-targeted password wordlist generator
Project description
wl — Username-Targeted Password Wordlist Generator
Generate highly targeted password candidates for a given username by applying structural patterns derived from real-world breach data (RockYou, SecLists, etc.). Every generated password relates to the target username — no filler entries.
Installation
pip install pslist # once published
# or from source:
git clone https://github.com/5h4nnu-dev/wl.git
cd wl
pip install -e .
Usage
wl <username> [options]
Basic
wl john
Generates john_wordlist.txt with ~78k unique candidates using the common word pool and structural patterns.
Options
| Flag | Description |
|---|---|
--keywords |
Custom keywords (pets, partners, etc.) |
--birth-year |
Birth year (e.g. 1990) |
--year-range |
Year range (default: 2020-2026) |
--leet |
Apply leet substitutions |
--output FILE |
Output file (default: <username>_wordlist.txt) |
--min-len |
Minimum password length (default: 4) |
--max-len |
Maximum password length (default: 32) |
--wordlist |
External wordlist file (adds to token pools) |
--refresh |
Re-download common passwords cache |
Examples
wl john --leet --output john.txt
wl admin --birth-year 1990 --year-range 2020 2026 --keywords rocket star
wl alice --wordlist rockyou.txt --refresh
How It Works
Token pools are built from the username (variants, truncations, reversals) and combined using structural patterns observed in real breaches:
{name}{digits} → john123
{name}{special} → john!
{name}{digits}{special} → john123!
{Name}{digits} → John123
{name}{year} → john2024
{word}{digits} → password123
{name}{word} → johnpassword
{l33t}{digits} → j0hn123
Token Sources
| Token | Source |
|---|---|
{name} |
username + case variants + truncations + reversed |
{Name} |
capitalized variants |
{digits} |
0–99, common sequences, birth/year range |
{special} |
! @ # $ % & * |
{year} |
birth year + year range |
{word} |
top words from SecLists 10k-most-common |
{l33t} |
leet-speak variants |
{keyword} |
user-supplied custom keywords |
The common password pool is downloaded from SecLists on first run and cached at ~/.cache/wl/common_passwords.txt.
Use Cases
- Offline hash cracking — feed wordlist into Hashcat / John
- Internal password spraying — targeted low-and-slow attempts per user
- Credential pattern analysis — understand a target's password habits
Dependencies
Python stdlib only — no third-party packages required.
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pslist-0.1.0.tar.gz.
File metadata
- Download URL: pslist-0.1.0.tar.gz
- Upload date:
- Size: 6.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
02a259a250ada703a4c21188f21b818e9c6c95c17b53cdf536a7318c6e6f877f
|
|
| MD5 |
5633514f019257d4ec432ead0e6cef6a
|
|
| BLAKE2b-256 |
fa551ac342013365280d72cfbdb0c09a8d301c305ff71fd1c6fa46a3e6863620
|
File details
Details for the file pslist-0.1.0-py3-none-any.whl.
File metadata
- Download URL: pslist-0.1.0-py3-none-any.whl
- Upload date:
- Size: 8.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c3ae7ef07f88e4f84aa5e6e163053736835354d1ccf4a76bf4c1420ec2bd0b68
|
|
| MD5 |
f55ba95f8bb49beb6670aa9fa295b35b
|
|
| BLAKE2b-256 |
340a7a8539a5b3bc16646050bd16403ea28f3ac48da1a5d764f4c0a01107182c
|