This is ver simple python tool to generate strings ex. for passwords. There are three possible options:
Build random string based on characters groups
- Build random string based on regex-like patterns.Supported special characters:
Character
Description
Example
{}()|-.
Restricted meta-characters.
Backslash escapes a metacharacter.
column 3
d
Digits shorthand.
exapnded to 0-9
w
Number shorthand.
expanded to
A-Za-z0-9_
s
Space shorthand.
expanded to (space) only
[]
Nested characters class.
[Abc_]
Characters range (between to chars).
[a-z]
,[A-Za-z0-9]
{n}
Reapat (random character) n-times.
{5}
{n,m}
Repeat (random character) k-times, where k is random number form n-m range.
{1,5}
(a|b)
random element from group.
(user|root)
- Generate Encryption keys:
- RSA
- ECDSA
Build random string or set of string based on predefined models. This models are build upon above generators. Models can be build as python class or as a YAML configuration file.
Results can be serialized to either json or yaml.
Simple comman line interface.
- Simple Generator:
from simplegenerator import SimpleGenerator
generator = SimpleGenerator(10, with_brackets=True)
result1 = generator.generate()
result2 = generator.generate(15)
- RegEx-like Generator:
from simplegenerator import ReGenerator
pgenerator = ReGenerator("[a-zA-Z0-9]{5-15}")
result = pgenerator.generate()
- Model based Generator:
from simplegenerator import (ModelBasedGenerator, RegexField,
StringField, RSAKey)
class Model(ModelBasedGenerator):
user = RegexField('[a-zA-Z]{10}')
key = RSAKey(password=PGenerator('[a-zA-Z0-9]{15}')
url = StringField('http://github.com/')
model_generator = Model()
result = model_generator.generate()
- Model Load from YAML file:
user:
type: RegexField
args:
pattern: '[a-z]{2}'
from simplegenerator import ModelBasedGenerator
generator = ModelBasedGenerator.load('model.yml')
result = generator.generate()
More complex models can be find in examples folder.
This tools provides also command line interface.
$ simplegenerator simple --length 10 --with-lower --with-upper --with-numbers
$ simplegenerator regex --pattern [a-zA-Z0-9]{15}
$ simplegenerator model --file model.yml