A highly flexiable and scriptable password dictionary generator.
Project description
TTPassGen
TTPassGen is a highly flexiable and scriptable password dictionary generator base on Python, you can easily use various rules to generate the desired combination of words.
README i18n: 中文说明
Features
- generate password use combination、permulation、conditional rules and so on.
- support all characters or words(from wordlist option) that can make up a password, some built-in charset has been provided, such as alphabetical list and numeric list.
- you can specify the order and frequency of each element in the word.
- simple rule format, and easy to use, rule could be defined similar regex's style.
- time-consuming estimates, output size estimates, and real-time progress reports.
- unicode word support by using wordlist option.
- Generation of large amounts of passwords at once, no output size limit.
- it can split output by file size.
Install
TTPassGen
can be easily installed using pip:
pip install ttpassgen
if you are using the windows operating system, you could just use the release version.
Requirements
Python 3.5 or later.
Quick Start
Switch to the project's
ttpassgen
directory if you want use ttpassgen by downloaded source code.
Example: Generate word list output to out.dict, the word format is prefix three digits, only allow 1、2、3, appear 2 or 3 times, followed by letter a or b.
ttpassgen -r [123]{2:3}[ab] out.dict
Done.
Options
C:\Users\tp730>ttpassgen --help
Usage: ttpassgen [OPTIONS] OUTPUT
Options:
-m, --mode INTEGER generation mode:
0 = combination rule mode
[default: 0]
-d, --dictlist TEXT read wordlist from the file, multi files
should by seperated by comma.
-r, --rule TEXT define word format, $0 means refer first
file in dictlist option, some built-in charsets:
?l = abcdefghijklmnopqrstuvwxyz
?u = ABCDEFGHIJKLMNOPQRSTUVWXYZ
?d = 0123456789
?s = !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
?a = ?l?u?d?s
?q = ]
example: [?dA]{1:2}$0
view *Examples* section for more information.
[default: '']
-c, --dict_cache INTEGER each element in 'dictlist' option represents
a dict file path, this option define the
maximum amount of memory(MB) that can be used,
increasing this value when the file is large
may increase the build speed. [default: 500]
-g, --global_repeat_mode TEXT whether the character is allowd to repeat:
? = 0 or 1 repetitions
* = 0 or more repetitions
[default: ?]
-p, --part_size INTEGER when result data is huge, split package
size(MB) will be applied, 0 is unlimited.
[default: 0]
-a, --append_mode INTEGER whether append content to OUTPUT or not.
[default: 0]
-s, --seperator TEXT word seperator, by default, each word
occupies one line. special char:
  = one space
[default: ]
--inencoding TEXT dict file encoding.
--outencoding TEXT output file encoding. [default: utf-8]
--help Show this message and exit.
generated password displayed line by line in OUTPUT
. It is recommended to use Notepad++ to open this file(utf-8
).
Examples
[] Used to wrap charset.
Repeat mode
[] 1 repetitions.
[123] -> 1 2 3
[]? 0 or 1 repetitions.
[123] -> '' 1 2 3
[]{m:n:r}
when repeatMode is `?`, [123]{1:2:?} -> 1 2 3 12 13 21 23 31 32
when repeatMode is `*`, [123]{1:2:*} -> 1 2 3 11 12 13 21 22 23 31 32 33
[]{m:n}
default use global_repeat_mode
option.
[]{n} or []{n:r}
same as []{n:n:r}
.
$no ref dict file index from dictlist
option.
ttpassgen --dictlist in.dict,in2.dict --rule $0[_]?$1 -s " " out.dict
when dictlist option defined as `in.dict,in2.dict`,
in.dict content:
word11
word12
in2.dict content:
word21
word22
$0[_]?$1 -> word11word21 word11word22 word11_word21 word11_word22 word12word21 word12word22 word12_word21 word12_word22
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for ttpassgen-1.0.4.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bee3be9d3fa68773a2d3cdc93ee931dfac31e832f33376bb484bad2aedeeee70 |
|
MD5 | 78d37b9c55dd936bd13a2f7cba9063b4 |
|
BLAKE2b-256 | 3ba4bdf55ecaeebe41b50a7231c30302b16f44c6831dc4968cdc745ed22b3810 |