Advertisement
Guest User

Password generator

a guest
May 24th, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 0.98 KB | None | 0 0
  1. #! /bin/bash
  2.  
  3. howmany=${1:-16}
  4. password_gen(){
  5.         local matrix pw count pick i
  6.         matrix="123456789aAbBcCdDeEfFgGhHiIjJkKLmMnNpPqQrRsStTuUvVwWxXyYzZ"
  7.         count="${#matrix}"
  8.         for ((i=1 ; i<=howmany ;i++)) ; do
  9.                 pick=${matrix:$((RANDOM%count-1)):1}
  10.                 pw="$pw$pick"
  11.         done
  12.         echo "$pw"
  13. }
  14.  
  15. case "$howmany" in
  16.                 8|9) ;;
  17.          [1-9][0-9]) ;;
  18.                   *) echo "Usage: $0 8-99" >&2
  19.                      echo "Default length: 16 if no argument is given." >&2
  20.                      exit 1
  21.                     ;;
  22. esac
  23.  
  24. pass=$(password_gen)
  25. while true ; do
  26.         lower=${pass//[!a-z]/}
  27.         upper=${pass//[!A-Z]/}
  28.         digit=${pass//[!0-9]/}
  29.         if [ -n "$lower" ] && [ -n "$upper" ] && [ -n "$digit" ]
  30.                 then
  31.                         break
  32.                 else
  33.                         unset pass
  34.                         pass=$(password_gen)
  35.         fi
  36. done
  37.  
  38. echo "$pass"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement