A lot of people with security in mind will use random characters as passwords like
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
^3(number of words)
^1000(numbers) different combinations possible
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'
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