Skip to main content

Passwords easy for humans, hard for computers

Project description

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 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

$> pip3 install passwordgenerator

$> passwordgenerator
844=Chinless=Jewelry+Consumer

Use within another Python script

>>> 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

passwordgenerator-1.1.1.tar.gz (93.2 kB view details)

Uploaded Source

Built Distribution

passwordgenerator-1.1.1-py2.py3-none-any.whl (94.5 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file passwordgenerator-1.1.1.tar.gz.

File metadata

File hashes

Hashes for passwordgenerator-1.1.1.tar.gz
Algorithm Hash digest
SHA256 62c5fbefb2c6cdd5c136856542eec6e3664831d162afee83916b49c9162f61c4
MD5 da3ca8c9de768ded6f276a51060ea652
BLAKE2b-256 29417820078b44f1305c179b6b5a6edbb4ecbf86bd0fcccaefb54cbaba8d44d5

See more details on using hashes here.

File details

Details for the file passwordgenerator-1.1.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for passwordgenerator-1.1.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 8475825ee92d1235f584a4001af867cdf25f13d3916fdf3285c78b6e20414fcb
MD5 cc1347da1d8ccdf38563aca0dd1f0daa
BLAKE2b-256 d40aef85ddeaee52b3b438f646c7774251c6b1038effafd72e234b5c85f312fb

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page