From 3250465b9030c03c7368fd18b8e88ead13cfb996 Mon Sep 17 00:00:00 2001 From: "calvin.house" Date: Sun, 15 Mar 2026 15:29:43 +0000 Subject: [PATCH] added pw-gen.py --- python/make-secrets.py | 36 ++++++++++++++++++++++++++++++++++++ python/pw-gen.py | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 python/make-secrets.py create mode 100644 python/pw-gen.py diff --git a/python/make-secrets.py b/python/make-secrets.py new file mode 100644 index 0000000..a45612b --- /dev/null +++ b/python/make-secrets.py @@ -0,0 +1,36 @@ +import secrets +import string +import argparse + + +def special_character_secret(secret_length=8): + sp_secret = ''.join(secrets.choice(string.ascii_letters + string.digits + + string.punctuation) + for i in range(secret_length)) + print(sp_secret) + + +def alpha_num_secret(secret_length=8): + n_secret = ''.join(secrets.choice(string.ascii_letters + string.digits) + for i in range(secret_length)) + print(n_secret) + + +parser = argparse.ArgumentParser(description="""Generate random secrets. + If no character length is provided, + the default is 8 characters.""") +parser.add_argument("-s", "--special", action="store_const", + const=special_character_secret, + help="Secret with special characters.") +parser.add_argument("-n", "--normal", action="store_const", + const=alpha_num_secret, + help="Alphanumeric secret.") +parser.add_argument("-l", "--length", help="Set secret length", type=int, + default=8) +args = parser.parse_args() + + +if args.special: + special_character_secret(args.length) +elif args.normal: + alpha_num_secret(args.length) diff --git a/python/pw-gen.py b/python/pw-gen.py new file mode 100644 index 0000000..a45612b --- /dev/null +++ b/python/pw-gen.py @@ -0,0 +1,36 @@ +import secrets +import string +import argparse + + +def special_character_secret(secret_length=8): + sp_secret = ''.join(secrets.choice(string.ascii_letters + string.digits + + string.punctuation) + for i in range(secret_length)) + print(sp_secret) + + +def alpha_num_secret(secret_length=8): + n_secret = ''.join(secrets.choice(string.ascii_letters + string.digits) + for i in range(secret_length)) + print(n_secret) + + +parser = argparse.ArgumentParser(description="""Generate random secrets. + If no character length is provided, + the default is 8 characters.""") +parser.add_argument("-s", "--special", action="store_const", + const=special_character_secret, + help="Secret with special characters.") +parser.add_argument("-n", "--normal", action="store_const", + const=alpha_num_secret, + help="Alphanumeric secret.") +parser.add_argument("-l", "--length", help="Set secret length", type=int, + default=8) +args = parser.parse_args() + + +if args.special: + special_character_secret(args.length) +elif args.normal: + alpha_num_secret(args.length)