Nov 062021
Someone asked me about this – a zsh function which I use to generate random passwords :-
✓ mike@pica» rpass noise
oOg6vsM+V0It4he6US4Xk6DuZPja9okyOpQyUCfW6NQ=
✓ mike@pica» rpass words
patternmaker+meio+tubicolous+misbelievingly
It’s too small and simple for me to classify as “open source” but there’s no harm in sharing the function :-
✓ mike@pica» which rpass
rpass () {
case "$1" in
("noise") dd if=/dev/random bs=1 count=32 status=none | base64 -i ;;
("words") punct=("," "." "<" ">" "/" ";" ":" "-" "+" "=")
onep=${punct[$(($RANDOM % ${#punct[@]} + 1 ))]}
w1=$(shuf -n 1 /usr/share/dict/words | sed -e "s/'.*$//")
w2=$(shuf -n 1 /usr/share/dict/words | sed -e "s/'.*$//")
w3=$(shuf -n 1 /usr/share/dict/words | sed -e "s/'.*$//")
w4=$(shuf -n 1 /usr/share/dict/words | sed -e "s/'.*$//")
echo "${w1}${onep}${w2}${onep}${w3}${onep}${w4}" ;;
("*") echo $1 not understood ;;
esac
}
This is just a simple zsh function with all sorts of little “issues” – not least is that it could at least say “$1 not understood – try ‘words’ or ‘noise'”.