openssl rand命令¶
用于生成随机数据。它非常适合在需要安全随机数的场景中使用,例如生成密钥、初始化向量(IV)、密码和随机文件。
常用选项和参数¶
指定生成的数据长度:
openssl rand <length> # <length> 指定生成随机字节的长度(以字节为单位)
以十六进制显示随机数:
openssl rand -hex <length>
以 Base64 编码显示随机数:
openssl rand -base64 <length>
输出到文件:
openssl rand -out <file> <length> 示例: openssl rand -out random.bin 32
创建随机密语¶
OpenSSL还能创建非常强壮的随机密语:
$ openssl rand 15 -base64
wGcwstkb8Er0g6w1+Dm+
如果你运行了这个例子,你的输出将与这里的输出不同,因为密语是随机产生的。
第一个参数15是产生的二进制字节数,第二个参数-base64指出那些二进制字节应该用基于64位字符编码,对于15字节而言,输出总是20个字符,加上一个新行字符
基于64位字符设定了只由大写和小写的字母A-Z,数字1-9和3个标点字符:加号、斜线号和等号。这是一个有意的字符限制设置,更复杂的字符设置不是必需的,仅仅增加一个额外的字符使得安全变得不同,例如:一个8位字符完全可打印的ASCII密码大约与一个9位字符基于64位字符编码的密码强度相当