|
|
|
|
@ -73,8 +73,19 @@ genpass-monkey() { |
|
|
|
|
|
|
|
|
|
genpass-xkcd() { |
|
|
|
|
# Generates a 128-bit XKCD-style passphrase |
|
|
|
|
# EG, 9-mien-flood-Patti-buxom-dozes-ickier-pay-ailed-Foster |
|
|
|
|
# e.g, 9-mien-flood-Patti-buxom-dozes-ickier-pay-ailed-Foster |
|
|
|
|
# Can take a numerical argument for generating extra passwords |
|
|
|
|
|
|
|
|
|
if (( ! $+commands[shuf] )); then |
|
|
|
|
echo >&2 "$0: \`shuf\` command not found. Install coreutils (\`brew install coreutils\` on macOS)." |
|
|
|
|
return 1 |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
if [[ ! -e /usr/share/dict/words ]]; then |
|
|
|
|
echo >&2 "$0: no wordlist found in \`/usr/share/dict/words\`. Install one first." |
|
|
|
|
return 1 |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
local -i i num |
|
|
|
|
|
|
|
|
|
[[ $1 =~ '^[0-9]+$' ]] && num=$1 || num=1 |
|
|
|
|
@ -90,6 +101,6 @@ genpass-xkcd() { |
|
|
|
|
|
|
|
|
|
for i in {1..$num}; do |
|
|
|
|
printf "$n-" |
|
|
|
|
printf "$dict" | shuf -n "$n" | paste -sd '-' |
|
|
|
|
printf "$dict" | shuf -n "$n" | paste -sd '-' - |
|
|
|
|
done |
|
|
|
|
} |
|
|
|
|
|