#!/bin/bash # Colors RED='\033[0;31m' LRED="\033[1;31m" BLUE="\033[0;34m" LBLUE="\033[1;34m" GREEN="\033[0;32m" LGREEN="\033[1;32m" YELLOW="\033[1;33m" CYAN="\033[0;36m" LCYAN="\033[1;36m" PURPLE="\033[0;35m" LPURPLE="\033[1;35m" BWHITE="\e[1m" NC='\033[0m' # No Color ## Functions shaStatic(){ #hashes date with SHA local charSize=20 echo echo "${charSize} character password generated using SHA256 with date" echo "***************************************************" date +%s | sha256sum | base64 | head -c ${charSize}; echo echo "***************************************************" } shaWithNum(){ #hashes date with SHA if [ $1 -ge 255 ];then echo echo "Error : $0 : Please choose a number lower than 255" echo else echo echo "$1 character password generated using SHA256 with date" echo "***************************************************" date +%s | sha256sum | base64 | head -c $1 ; echo echo "***************************************************" fi } leftHand(){ echo echo "8 character password easy to type with left hand" echo "**************************************************" </dev/urandom tr -dc '12345!@#$%qwertQWERTasdfgASDFGzxcvbZXCVB' | head -c8; echo "" echo "**************************************************" } leftHandNum(){ if [ $1 -ge 255 ];then echo echo "Error : $0 : Please choose a number lower than 255" echo else echo echo "$1 character password easy to type with left hand" echo "**************************************************" </dev/urandom tr -dc '12345!@#$%qwertQWERTasdfgASDFGzxcvbZXCVB' | head -c$1; echo "" echo "**************************************************" fi } ## Main case "$1" in -cs | --char-size ) shaWithNum $2 ;; -l | --left-hand ) leftHand ;; -lcs | --left-char-size ) leftHandNum $2 ;; "") shaStatic ;; * | -h | --help ) echo echo "NAME" echo " bashpass" echo echo "SYNOPSIS" echo " bashpass [-h] [--help] [-cs <integer>] [-l] [-lcs <integer>]" echo echo "-cs <integer> | --char-size <integer>" echo " specify password length" echo echo "-l | --left-hand" echo " left handed password" echo echo "-lcs <integer> | --left-char-size <integer>" echo " left hand password with length" echo ;; esac