https://github.com/gabfl/password-generator-py
Passwords easy for humans, hard for computers
https://github.com/gabfl/password-generator-py
password-generator password-safety python3
Last synced: 7 months ago
JSON representation
Passwords easy for humans, hard for computers
- Host: GitHub
- URL: https://github.com/gabfl/password-generator-py
- Owner: gabfl
- License: mit
- Created: 2016-12-28T00:01:16.000Z (almost 9 years ago)
- Default Branch: main
- Last Pushed: 2023-05-09T00:23:01.000Z (over 2 years ago)
- Last Synced: 2025-02-27T16:22:09.676Z (7 months ago)
- Topics: password-generator, password-safety, python3
- Language: Python
- Size: 278 KB
- Stars: 29
- Watchers: 5
- Forks: 7
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# password-generator-py
[](https://pypi.org/project/passwordgenerator)
[](https://github.com/gabfl/password-generator-py/actions)
[](https://codecov.io/gh/gabfl/password-generator-py)
[](https://raw.githubusercontent.com/gabfl/password-generator-py/main/LICENSE)## 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
```bash
$> pip3 install passwordgenerator$> passwordgenerator
844=Chinless=Jewelry+Consumer
```## Use within another Python script
```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
```