From 435e01442aa0d3dea1456b83f7c03cc98883377c Mon Sep 17 00:00:00 2001 From: DieGurke Date: Fri, 25 Mar 2022 17:03:28 +0100 Subject: [PATCH] Python file and bash script --- pwgen.sh | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++ pwgenerator.py | 28 ++++++++++++++++++++++++++ 2 files changed, 82 insertions(+) create mode 100755 pwgen.sh create mode 100644 pwgenerator.py diff --git a/pwgen.sh b/pwgen.sh new file mode 100755 index 0000000..5d43fff --- /dev/null +++ b/pwgen.sh @@ -0,0 +1,54 @@ +#!/usr/bin/env bash + +imp="import pwgenerator as g;" + +function _help() { + echo "Usage: pwgen [length] [mode]" + echo "" + echo "Available modes:" + printf " %-15s\t%s\n" \ + "numbers" "Generates password containing only numbers" \ + "lower" "Generates password containing only lower letters" \ + "upper" "Generates password containing only upper letters" \ + "letters" "Generates password containing only letters" \ + "letters-numbers" "Generates password containing only letters and ners" \ + "full" "Generates password containing letters, numbers and symbols" \ +} + +case "$#" in + 0) + _help + ;; + 1) + python -c "${imp} g.genFull($1)" + ;; + 2) + case "$2" in + numbers) + python -c "${imp} g.genNum($1)" + ;; + lower) + python -c "${imp} g.genLetLow($1)" + ;; + upper) + python -c "${imp} g.genLetUp($1)" + ;; + letters) + python -c "${imp} g.genLet($1)" + ;; + letters-numbers) + python -c "${imp} g.genLetNum($1)" + ;; + full) + python -c "${imp} g.genFull($1)" + ;; + *) + _help + ;; + esac + ;; + *) + _help + ;; +esac + diff --git a/pwgenerator.py b/pwgenerator.py new file mode 100644 index 0000000..b85b45b --- /dev/null +++ b/pwgenerator.py @@ -0,0 +1,28 @@ +import random + +lower = "abcdefghijklmnopqrstuvwxyz" +upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" +numbers = "0123456789" +symbols = "!$%&/?+*-#" + +def genNum(length): + gen(numbers, length) + +def genLetLow(length): + gen(lower, length) + +def genLetUp(length): + gen(upper, length) + +def genLet(length): + gen(lower + upper, length) + +def genLetNum(length): + gen(lower + upper + numbers, length) + +def genFull(length): + gen(lower + upper + numbers + symbols, length) + +def gen(chars, length): + print(''.join(random.choice(chars) for _ in range(length))) +