Skip to content

wiacekm/simplegenerator

Repository files navigation

Simple (Password) Generator

Build status

License

Coverage

This is ver simple python tool to generate strings ex. for passwords. There are three possible options:

  1. Build random string based on characters groups
  2. 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)
  3. Generate Encryption keys:
    • RSA
    • ECDSA
  4. 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.
  5. Results can be serialized to either json or yaml.
  6. Simple comman line interface.

Usage Examples

  1. Simple Generator:
from simplegenerator import SimpleGenerator
generator = SimpleGenerator(10, with_brackets=True)
result1 = generator.generate()
result2 = generator.generate(15)
  1. RegEx-like Generator:
from simplegenerator import ReGenerator
pgenerator = ReGenerator("[a-zA-Z0-9]{5-15}")
result = pgenerator.generate()
  1. 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()
  1. 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.

Commandline scripts

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

About

Simple random string (password) genrator

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages