3 ms·
as a bash alias: word_pass() { cat /usr/share/dict/words | awk 'BEGIN{srand();}{print rand()"\t"$0}' | sort -k1 -n | cut -f2 | head -n 4 | tr "\\n" " "
by nikcub 15y ago
as a bash alias:
word_pass() {
cat /usr/share/dict/words | awk 'BEGIN{srand();}{print rand()"\t"$0}' | sort -k1 -n | cut -f2 | head -n 4 | tr "\\n" " " && echo
}
then:
$ word_pass
corticifugally tetraploidy democrat vibrionic
(if you notice how this works, you can see that it isn't super-efficient, but it works)
- adr_ 15y agoUsing shuf, my favourite, rarely used gnu textutil. shuf /usr/share/dict/words|head -4|tr '\n' ' ';echo
- nikcub 15y agoye it isn't on OS X just the same, sort -R is GNU only and not POSIX
- gjm11 15y agoDANGER: This gives no more entropy than what srand() uses, which (at least for GNU awk) is simply the current UNIX time, which (if we assume that when you generated the password is known to within one year) means only about 25 bits of entropy.
- nikcub 15y agosrand in awk is platform specific. on most recent is isn't a straight call to srand(). I have another version that I use that stuffs srand but in the end I figured srand from a 250k dictionary is still better than picking words out of your head from a ~1k dictionary
- gjm11 15y agoI looked at the trunk code for gawk on Savannah when I wrote the above. It passes the output of time(0) straight into srand(). The size of the dictionary doesn't matter (given that it's more than about 70 words); the limiting factor is the entropy in the RNG seeding.