A command-line utility written in Rust, designed to generate wordlists based on common typing errors. Given an input wordlist, typo-wordlist-generator produces an output file containing variations of the input words that simulate typing mistakes according to a predefined typo map.
- 🚄 Concurrency: Utilizes Rayon for parallel processing, improving the execution speed on multi-core systems.
- 🔧 Customizable Typo Depth: Allows specifying the depth of typos to generate, controlling the thoroughness of the typo simulation.
- 🔛 Prefix and Suffix Addition: Offers options to append prefixes or suffixes to each term in the generated wordlist, enhancing flexibility for different use cases.
- 🛑 Error Handling: Gracefully handles I/O and parsing errors, ensuring robustness during operation.
| Key | Typos |
|---|---|
| q | w, a |
| w | q, e, a, s, d |
| e | w, r, s, d, f |
| r | e, t, d, f, g |
| t | r, y, f, g, h |
| y | t, u, g, h, j |
| u | y, i, h, j, k |
| i | u, o, j, k, l |
| o | i, p, k, l |
| p | o, l |
| a | q, w, s, z, x |
| s | q, w, e, a, d, z, x, c |
| d | w, e, r, s, f, x, c, v |
| f | e, r, t, d, g, c, v, b |
| g | r, t, y, f, h, v, b, n |
| h | t, y, u, g, j, b, n, m |
| j | y, u, i, h, k, n, m |
| k | u, i, o, j, l, m |
| l | i, o, p, k |
| z | a, s, x |
| x | z, a, s, d, c |
| c | x, s, d, f, v |
| v | c, d, f, g, b |
| b | v, f, g, h, n |
| n | b, g, h, j, m |
| m | n, h, j, k |
- 🦀 Rust 2021 Edition or newer.
- 📦 Cargo package manager.
- Dependencies:
clapfor parsing command-line arguments.rayonfor parallel data processing.
First, ensure you have Rust and Cargo installed on your system. Then, follow these steps to build the program:
# Clone this repository (simulate this step as the source code is provided)
git clone https://github.com/tragdate/typo-wordlist-generator
# Change to the project directory
cd typo-wordlist-generator
# Build the project using Cargo
cargo build --releaseAfter building the project, you can run it using Cargo or directly from the executable file in the target/release directory. Here are some examples of how to use typo-wordlist-generator:
# Basic usage with required arguments
typo-wordlist-generator -i input.txt -o output.txt
# Specifying typo depth
typo-wordlist-generator -i input.txt -o output.txt -d 2
# Adding a prefix and suffix to each word
typo-wordlist-generator -i input.txt -o output.txt --prefix "pre" --suffix "suf"
# Showing help information
typo-wordlist-generator --help-i, --input <INPUT>: Path to the input file containing the original wordlist.-o, --output <OUTPUT>: Path to the output file where the typo-inclusive wordlist will be saved.-p, --prefix <PREFIX>: Prefix to append to each word in the generated list.-s, --suffix <SUFFIX>: Suffix to append to each word in the generated list.-d, --typo_depth <TYPO_DEPTH>: Depth of typo generation. Can be a number or 'full' for maximum depth.
This project is licensed under the BSD 3-Clause “New” or “Revised” License.