在 Linux 系统中,获取随机数有多种方法,以下是常见的几种方式:
/dev/random
或 /dev/urandom
设备文件/dev/random
:生成高熵随机数(适合安全场景),但可能阻塞直到收集足够熵。/dev/urandom
:非阻塞的伪随机数(适合大多数场景),性能更高。
示例命令:
# 获取 16 字节的随机十六进制数
head -c 16 /dev/urandom | od -An -tx1 | tr -d ' '
# 获取 0-99 的随机整数
echo $(( $(od -An -N2 -i /dev/urandom) % 100 ))
$RANDOM
变量(Bash 内置)0-32767
(16位整数)。bash
echo $RANDOM # 输出 0-32767 的随机数
echo $((RANDOM % 100)) # 输出 0-99 的随机数
openssl
命令bash
openssl rand -hex 16 # 生成 16 字节的随机十六进制数
openssl rand -base64 12 # 生成 12 字节的 Base64 随机字符串
date
命令(低安全性)bash
date +%s%N | cut -b1-10 # 取当前时间戳的纳秒部分
python
import random
print(random.randint(0, 99)) # 0-99 的随机整数
perl
print int(rand(100)); # 0-99 的随机整数
shuf
(随机排序)bash
shuf -i 1-100 -n 1 # 从 1-100 中随机选取 1 个数
/dev/random
或 openssl rand
。% N
)或 shuf
限制随机数范围。根据需求选择合适的方法即可!