# 生成随机字符串

# 使用uuidgen命令

uuidgen

如果没有安装uuidgen命令,可以使用apt-get install uuid-runtime安装。

生成效果如下:

$ uuidgen
a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d

# 使用openssl命令

openssl rand -hex 16

如果没有安装openssl命令,可以使用apt-get install openssl安装。

生成效果如下:

$ openssl rand -hex 16
a1b2c3d4e5f67a8b9c0d1e2f3a4b5c6d

命令中的16表示生成 16 个字节的随机字符串,也就是 32 个字符。所以如果要生成 8 个字节的随机字符串,可以使用openssl rand -hex 8

# 使用head命令

head -c 16 /dev/urandom | xxd -p

如果没有安装xxd命令,可以使用apt-get install xxd安装。

生成效果如下:

$ head -c 16 /dev/urandom | xxd -p
a1b2c3d4e5f67a8b9c0d1e2f3a4b5c6d

命令中的16表示生成 16 个字节的随机字符串,也就是 32 个字符。所以如果要生成 8 个字节的随机字符串,可以使用head -c 8 /dev/urandom | xxd -p

# 使用tr命令

tr -dc A-Za-z0-9 </dev/urandom | head -c 16

生成效果如下:

$ tr -dc A-Za-z0-9 </dev/urandom | head -c 16
a1b2c3d4e5f67a8b

TIP

tr命令的-dc参数表示删除所有不在A-Za-z0-9范围内的字符,</dev/urandom表示从/dev/urandom文件中读取数据,head -c 16表示只输出前 16 个字符。

在 macOS 上, tr命令不支持-dc参数,可以使用tr -d -c A-Za-z0-9代替。

$ tr -d -c A-Za-z0-9 </dev/urandom | head -c 16
a1b2c3d4e5f67a8b
Last Updated: 2022/11/23 15:20:49