upd(genpass)
This commit is contained in:
parent
91b7fc71a7
commit
ad390d00b6
@ -2,6 +2,71 @@
|
|||||||
|
|
||||||
set -ue
|
set -ue
|
||||||
|
|
||||||
len="${1:-20}"
|
LC_ALL=C
|
||||||
|
DEFAULT_PASSWORD_LENGTH=20
|
||||||
|
|
||||||
LC_ALL=C tr -dc 'A-Za-z0-9@#%^&*()_+=-{}[]:;<>,.?/' < /dev/urandom | head -c "${len}"| xargs echo
|
simple() {
|
||||||
|
PASSWORD_LENGTH="${1:-$DEFAULT_PASSWORD_LENGTH}"
|
||||||
|
tr -dc 'A-Za-z0-9@#%^&*()_+=-{}[]:;<>,.?/' < /dev/urandom | head -c "${PASSWORD_LENGTH}" | xargs echo
|
||||||
|
}
|
||||||
|
|
||||||
|
_shuf_line() {
|
||||||
|
fold -w1 | shuf | tr -d '\n'
|
||||||
|
}
|
||||||
|
|
||||||
|
_gen_random_by_charset() {
|
||||||
|
length="${1}"
|
||||||
|
charset="${2}"
|
||||||
|
|
||||||
|
tr -dc "${charset}" < /dev/random | head -c "${length}"
|
||||||
|
}
|
||||||
|
|
||||||
|
_gen_random_lower() {
|
||||||
|
length="${1}"
|
||||||
|
_gen_random_by_charset "${length}" '[:lower:]'
|
||||||
|
}
|
||||||
|
|
||||||
|
_gen_random_upper() {
|
||||||
|
length="${1}"
|
||||||
|
_gen_random_by_charset "${length}" '[:upper:]'
|
||||||
|
}
|
||||||
|
|
||||||
|
_gen_random_digits() {
|
||||||
|
length="${1}"
|
||||||
|
_gen_random_by_charset "${length}" '[:digit:]'
|
||||||
|
}
|
||||||
|
|
||||||
|
_gen_random_special() {
|
||||||
|
length="${1}"
|
||||||
|
_gen_random_by_charset "${length}" '!"#$%&()*+,-./:;<=>?@[\\]^_`{|}~'\'''
|
||||||
|
}
|
||||||
|
|
||||||
|
protected() {
|
||||||
|
readonly symbols_count_of_each_type=5
|
||||||
|
|
||||||
|
password=""
|
||||||
|
|
||||||
|
password="${password}$(_gen_random_lower "${symbols_count_of_each_type}")"
|
||||||
|
password="${password}$(_gen_random_upper "${symbols_count_of_each_type}")"
|
||||||
|
password="${password}$(_gen_random_digits "${symbols_count_of_each_type}")"
|
||||||
|
password="${password}$(_gen_random_special "${symbols_count_of_each_type}")"
|
||||||
|
|
||||||
|
echo "${password}" | _shuf_line
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ -z "${1+x}" ]; then
|
||||||
|
simple "${DEFAULT_PASSWORD_LENGTH}"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
main() {
|
||||||
|
if [ "${1}" = "-p" ]; then
|
||||||
|
protected
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
simple "${1}"
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
|
main "${@}"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user