On Wed, 03 Dec 2014 22:53:22 +0100
Alexander Hall wrote:
> >> If you want strong, short passwords that look ridiculous:
> >>
> >> dd if=/dev/random bs=1 count=9 | b64encode password
> >>
> >
> >And then try to remember that mess, or type it, especially into
> >a smartphone. Gaak! 8-O
>
> base64 ain't that bad, but might lack those special symbols which we all know
> makes all the difference between a bad and a good password...
This is what I came up with
#!/bin/sh
n="$1"
max=500
rn=$(($RANDOM %max + 1 ))
[[ -n "$n" ]] || n=12
if [[ $n -lt 8 ]]; then
echo "Using 12 as the password length, a length of $n would be too weak"
fi
rn2=$rn
let rn2=$rn2+$n-1
p=$( /bin/dd if=/dev/urandom bs=2000 count=1 2>/dev/null | tr -cd
"a-zA-Z0-9?.,!\"-()@/:_;+&%*=<>$[]{}/\~^#|" | cut -c "$rn"-"$rn2" )
echo "${p}"