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个字符

  

 

posted @ 2021-11-11 22:10  诟笑  阅读(495)  评论(0编辑  收藏  举报