shell生成随机字符串

  1. 生成随机数
    [root@73 ~]# echo $RANDOM

    注:得到的这个数是小于或等于5位的整数。

  2. 生成随机字符串
    [root@73 ~]# head -n 5 /dev/urandom |sed 's/[^a-Z0-9]//g'|strings -n 4
    [root@73 ~]# head -n 5 /dev/urandom |strings -n 5
    [root@73 ~]# openssl passwd -stdin < <(echo)
  3. 从指定字符集和中生成随机字符串
    #!/bin/bash
    MATRIX="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz~!@#$%^&*()_+="
    LENGTH="9"
    while [ "${n:=1}" -le "$LENGTH" ]
    do
        PASS="$PASS${MATRIX:$(($RANDOM%${#MATRIX})):1}"
        let n+=1
    done
    echo "$PASS" 
    exit 0
  4. 通过时间获得随机数(date)
    [root@node3 test]# date +%s%N
  5. 通过系统内部唯一数据生成随机数(/dev/random,urandom)
    [root@node3 test]# head -1 /dev/urandom

    注:产生的是二进制所以显示乱码

    [root@node3 test]# head -20 /dev/urandom | cksum
  6. 读取linux的uuid码
    [root@node3 test]# cat /proc/sys/kernel/random/uuid | cksum | cut -f1 -d " "

发表评论

电子邮件地址不会被公开。

CAPTCHA

*