day4:shell中的随机数、随机字符串
1.使用shell内置RANDOM获取随机数
shell中RANDOM这个变量的取值范围为0-32767
对RANDOM取模或再进行加减来限制对应范围
eg:
如果想得到1–68范围内的数 :$(($RANDOM%68+1))
如果想得到6–87范围内的数 :$(($RANDOM%82+6))
2.使用uuidgen获取随机字符串
Unix/Linux环境中大都有一个名为uuidgen命令,运行即可生成一个格式为xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx的UUID
去掉4个-,其余字符均为字母或数字,共32位;可以通过截取字符串来获取对应长度的字符串
3.使用openssl加密工具集生成随机字符串
使用openssl生成随机数需要用到的标准命令为 rand ,用法如下:
openssl rand [-out file] [-rand file(s)] [-base64] [-hex] num
常用选项有:
-out file:将生成的随机字符串保存至指定文件中
-base64:使用base64 编码格式
-hex:使用16进制编码格式
注意:num不是生成的字符串长度,但和长度成正比
eg:
openssl rand -base64 12
4.利用随机设备文件/dev/random或/dev/urandom(效率比前者高)获取随机字符串
使用strings可查看/dev/random或/dev/urandom里的随机字符串,如strings /dev/random
该随机字符串包含除字母、数字外的特殊符合,可用tr命令对数据进行替换、删除操作
eg:
tr -cd '0-9a-zA-Z' < /dev/random | head -c 10
删除不是数字、大小写字母的数据并截取前10个字符