passwordgenerator 1.5.1
Passwords easy for humans, hard for computers
License: MIT
Requires Python: >=2.7,>=3.2

password-generator-py
=====================

|Pypi| |Build Status| |codecov| |MIT licensed|

Description
-----------

A lot of people with security in mind will use random characters as
passwords like ``t.J:YuZcTSB=4z*v``. `We feel it’s
secure <https://xkcd.com/936/>`__ because it’s complicated. But the
password above is as difficult as ``abcdefghijkl!123`` for a machine to
brute force even though it’s a lot easier for a user to remember.

This program attempts to create passwords truly difficult for a computer
to brute force and easier to remember for a user.

Each password contains:
~~~~~~~~~~~~~~~~~~~~~~~

-  3 words from the english dictionary
-  1 random number placed at a random position
-  Random separators between words and numbers

It is very secure because…
~~~~~~~~~~~~~~~~~~~~~~~~~~

-  Since words length differ, the password length is unpredictable
-  The separators change randomly
-  The position of the number change randomly
-  There are ``32,000`` (words) ``^3`` (number of words) ``^10``
   (separator) ``^10`` (separator) ``^10`` (separator) ``^1000``
   (numbers) different combinations possible

Examples
--------

Here are a few passwords that can be generated:

::

   Coaches_Acquires=Dumbbell_908
   28=Haziness_Spatulas+Mortals
   Knights;Decrypts%Oatcakes_320
   Optimise=472+Deterred%Apricots
   375+Hazy%Decorate%Ruler
   Blotched%Dugout_995;Alkyl

Installation & usage
--------------------

.. code:: bash

   $> pip3 install passwordgenerator

   $> passwordgenerator
   844=Chinless=Jewelry+Consumer

Use within another Python script
--------------------------------

.. code:: python

   >>> from passwordgenerator import pwgenerator

   >>> pwgenerator.generate()
   '676=Layers*Bugbear_Escapes'

Advanced options
----------------

::

   passwordgenerator [-h] [-n MIN_WORD_LENGTH] [-x MAX_WORD_LENGTH]
                     [-i MAX_INT_VALUE] [-e NUMBER_OF_ELEMENTS] [-s]

   optional arguments:
     -h, --help            show this help message and exit
     -n MIN_WORD_LENGTH, --min_word_length MIN_WORD_LENGTH
                           Minimum length for each word
     -x MAX_WORD_LENGTH, --max_word_length MAX_WORD_LENGTH
                           Maximum length for each word
     -i MAX_INT_VALUE, --max_int_value MAX_INT_VALUE
                           Maximum value for the integer
     -e NUMBER_OF_ELEMENTS, --number_of_elements NUMBER_OF_ELEMENTS
                           Number of elements in the password (ie. 4 = 3 words +
                           1 integer)
     -s, --no_special_characters
                           Do not use special characters

.. |Pypi| image:: https://img.shields.io/pypi/v/passwordgenerator.svg
   :target: https://pypi.org/project/passwordgenerator
.. |Build Status| image:: https://github.com/gabfl/password-generator-py/actions/workflows/ci.yml/badge.svg?branch=main
   :target: https://github.com/gabfl/password-generator-py/actions
.. |codecov| image:: https://codecov.io/gh/gabfl/password-generator-py/branch/main/graph/badge.svg
   :target: https://codecov.io/gh/gabfl/password-generator-py
.. |MIT licensed| image:: https://img.shields.io/badge/license-MIT-green.svg
   :target: https://raw.githubusercontent.com/gabfl/password-generator-py/main/LICENSE