Linux 产生随机数的两种方式

cat  /dev/urandom | od -x | sed 's/\s*//g' |cut -c 8-16 |less 

cat  /dev/random | od -x | sed 's/\s*//g' |cut -c 8-16 |less 

上述两种方式都可以产生随机数,但是有区别

dev/urandom  和dev/random
都是产生用不为空的随机字符流,区别是

/dev/random设备会封锁,直到系统产生的随机字符流已经充分够用,所以耗用时间较长

/dev/urandom设备不会封锁,数据的随机程度不高,但是一般情况已经够用


 

生成全字符随机的字串:
cat /dev/urandom | strings -n C | head -n L

生成数字加字母的随机字串:
cat /dev/urandom | sed 's/[^a-zA-Z0-9]//g' | strings -n C | head -n L

其中C表示字符串的字符数,L表示要生成多少行字符。