Linux 随机数生成
- 使用dd命令截取/dev/urandom
dd if=/dev/urandom bs=1 count=20 2>/dev/null|base64|rev|cut --bytes 3-|rev
- 生成10个小写字母
< /dev/urandom tr -dc [a-z] | head --bytes 10;echo
- 生成10个大写字母
< /dev/urandom tr -dc [A-Z] | head --bytes 10;echo
- 生成10个数字
< /dev/urandom tr -dc [:digit:] | head --bytes 10;echo
- 利用时间和散列函数
date +%s | sha256sum | base64 | head --bytes 10;echo
- openssl rand子命令
openssl rand 产生的是随机bytes字节,直接输出会乱码,故用base64或hex编码
openssl rand -hex 6 openssl rand -base64 6
使用base64编码可能会有 / + = 等特殊字符
- 结合fold命令
tr -dc [:digit:] < /dev/urandom | fold --width 10 | head -1
- 使用strings提取ASCII字符
strings /dev/urandom | grep -o '[[:digit:]]' | head -10 | tr -d '\n';echo