Files
code-dumps/py/pwgen.py
T

30 lines
922 B
Python
Executable File

#!/usr/bin/env python3
import sys
import petname
import secrets
from itertools import chain
def generate_password(names: int) -> str:
"""
Generate a password from pet names and a random number
:param names: Number of names to generate
:return: A simple yet secure password
"""
results = []
while len(results) < names:
candidate = petname.Name().capitalize()
results.append(candidate) if len(candidate) > 3 else None
results.append(str(secrets.randbelow(8999)+1000))
return ".".join(results)
def generate_insane_password(length: int) -> str:
ascii_pool: str = ''.join(chr(i) for i in chain(range(40, 127), range(180, 256)))
return ''.join(secrets.choice(ascii_pool) for _ in range(length))
if __name__ == '__main__':
if len(sys.argv) <= 1:
print(generate_password(3))
elif sys.argv[1] == '-insane':
print(generate_insane_password(20))