在Linux日常使用中,为了提高安全性,经常需要生成随机密码。本文介绍了几种常用的生成随机密码的方法,供大家参考
1. 使用urandom
A) < /dev/urandom tr -dc A-Za-z0-9 | head -c${1:-32};echo;
B) < /dev/urandom tr -dc A-Za-z0-9 | head -c32; echo
C) tr -cd '[:alnum:]' < /dev/urandom | fold -w32 | head -n1
D) strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 32 | tr -d '\n'; echo
E) dd if=/dev/urandom bs=1 count=32 2>/dev/null | base64 -w 0 | rev | cut -b 2- | rev
F) </dev/urandom tr -dc '12345!@#$%qwertQWERTasdfgASDFGzxcvbZXCVB' | head -c8; echo ""
2. 使用基于urandom的命令,如openssl
openssl rand -base64 32
openssl rand -hex 16
3. 使用date+md5sum
date | md5sum | awk '{print $1}'
date | md5sum | base64
date +%s | sha256sum | base64 | head -c 32 ; echo
此方法每秒之内生成的密码相同,因此不适合大量使用
4. 自己写
自己写有可能不是非常随机,暂不考虑
总体上讲,使用openssl的方法算最简洁的,但不如urandom随机性好